zoukankan      html  css  js  c++  java
  • 多线程Thread类的方法

    创建多个线程的第一种方法

    1、定义一个Thread类的子类,比如MyThread类
    2、重写Thread的run方法,设置线程任务
    3、创建Mythread类的对象
    4、调用方法start(),开启新的线程,执行run()方法

    Thread的一些常用方法

    public String getName():返回该线程的名字
    static Thread currentThread(): 静态方法,返回当前的线程//返回的该线程的对象可以调用getName方法,得到当前线程名称
    public void setName(String name):设置线程名称,创建的MyThread对象可以调用该方法设置线程名称
    public static sleep(long milllis):当前线程暂停执行millis毫秒
    

    MyThread类

    public class MyThread extends Thread {
        public MyThread(){
    
        }
        public MyThread(String name) {// 带参数的构造方法,可以用来设置线程名称
            super(name);
        }
    
        @Override
        public void run() {
            String name = getName();
            System.out.println(name);
        }
    }
    

    方法的应用

    public class Multithreading {
        public static void main(String[] args) {
            MyThread mt = new MyThread();
            // 创建对象
            // 调用start方法,开启新线程,执行run方法
    
            //mt.start();//Thread-0
            new MyThread().start();
            new MyThread().start();
            new MyThread().start();
    
            System.out.println(Thread.currentThread().getName());
            // 一共有5个线程,其中4个自己创建的线程,1个主线程,由于线程执行的顺序不一定,因此顺序是随机的
            /*Thread-0
            main
            Thread-3
            Thread-2
            Thread-1*/
    
            mt.setName("绿巨人");
            mt.start();
            new MyThread("钢铁侠").start();
    
    
        }
    }
    
    

    sleep方法,可以用来当做计时器

    package cn.zhuobo.day12.aboutMultithreading;
    // public static void sleep(long millis):使当前正在执行的线程,以毫秒数暂停执行
    public class Sleep {
        public static void main(String[] args) {
            for (int i = 0; i < 60; i++) {
                System.out.println(i);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {// 实现了每隔1s打印一个数字,因为当前的main线程每打印一个数字就会被sleep方法暂停1000ms
                    e.printStackTrace();
                }
            }
        }
    }
    

    创建多个线程的第二种方法

    java.lang.Runable
    声明实现Runable接口的类, 该类然后实现run方法,然后new一个该类的实例,作为创建Thread对象的参数,并且启动该线程

    1、创建一个Runable接口的实现类
    2、在实现类中重写Runable接口的run方法
    3、创建一个Runable实现类的对象
    4、创建一个Thread对象,并在构造方法中传递第3步的实现类对象
    5、Thread对象调用start方法,开启新线程,执行run方法
    

    Runablle接口的实现类

    package cn.zhuobo.day12.aboutMultithreading;
    
    public class RunableImpl implements Runnable {
        @Override
        public void run() {
            for (int i = 0; i < 100; i++) {
                System.out.println(Thread.currentThread().getName() + "-->" + i);
            }
        }
    }
    

    开启新的线程

    package cn.zhuobo.day12.aboutMultithreading;
    
    public class RunableDemo {
        public static void main(String[] args) {
            RunableImpl run = new RunableImpl();// 创建Runable实现类的对象
            Thread t = new Thread(run);// 创建Thread对象,并使用Runable实现类的对象作为参数
            t.start();// Thread对象调用start方法,执行run方法,开启新线程
    
            for (int i = 0; i < 100; i++) {
                System.out.println(Thread.currentThread().getName());// main线程
            }
        }
    }
    
    
  • 相关阅读:
    sklearn: TfidfVectorizer 中文处理及一些使用参数
    sklearn: TfidfVectorizer 中文处理及一些使用参数
    python在文件中输入整数
    python在文件中输入整数
    Python文件操作,with open as追加文本内容实例
    Python文件操作,with open as追加文本内容实例
    Python中的Bunch模式
    Python中的Bunch模式
    python文本挖掘模版
    python文本挖掘模版
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10638917.html
Copyright © 2011-2022 走看看