shaoshuai888

多线程之 Thread类

一.多线程第一种方式的实现步骤(继承Thread类)

  代码演示:

    1.定义MyThread类,继承Thread类

    2.重写了里面的run方法,在run方法中定义线程要执行的任务

public class MyThread extends Thread{
    @Override
    public void run() {    //run方法内是子线程要执行的代码
        for(int i = 1; i <= 100; i++) {
            System.out.println("HelloJava:" + i);
        }
    }
}

     3.创建Thread子类对象

    4.调用子类对象的start方法,启动线程

public class Demo01Thread {
    public static void main(String[] args) {
        System.out.println("main...start");
        //创建Thread子类对象
        MyThread mt = new MyThread();
        //调用start方法启动线程
        mt.start();

        System.out.println("main....end");
    }
}

     上面两块代码,会开启子线程,并运行子线程中的run方法

 

二.Thread中的常见方法:  

  构造方法:  

    public Thread(String name): 传递一个线程的名字

  成员方法:

    void setName(String name): 给线程设置名字

    String getName(): 获取线程的名字

    (重要) static Thread currentThread(): 获取当前正在运行的线程

    (重要) static void sleep(long mills): 线程休眠,参数为休眠的时间,单位是毫秒

  代码演示部分Thread方法:

    1.创建MyThreadMethod类继承Thread类,并重写内部run方法

public class MyThreadMethod extends Thread{
    public MyThreadMethod() {}

    public MyThreadMethod(String name) {
        super(name); //调用父类一个参数是字符串的构造方法,将线程名字进行传递。
    }

    //在run方法中定义线程要执行的任务
    @Override
    public void run() {
        //setName("旺财");
        System.out.println("新线程执行了");
        //MyThreadMethod 是Thread的子类,所以在这个方法中能够直接调用getName获取线程的名字。
        System.out.println("新线程的名字是:" + getName());
    }
}

     2.演示方法currentThread方法和getName方法

public class Demo02ThreadMethod {
    public static void main(String[] args) {
        //创建Thread子类对象,并且运行这个线程
        MyThreadMethod mtm = new MyThreadMethod("如花");

        //mtm.setName("狗蛋");

        mtm.start();


        //获取main线程的名字
        //获取当前正在运行的线程对象,再通过这个线程对象调用getName方法,获取线程名字
        //这个currentThread方法是由哪个线程执行的,那么获取到的就是哪个线程对象。
        Thread t = Thread.currentThread();
        System.out.println("main线程的名字是:" + t.getName());

    }
}

   上面代码运行结果是:

     新线程执行了
    新线程的名字是:如花
    main线程的名字是:main

    

 

 

 

 

 

 

 

 

 

 

 

 

 

    

posted on 2018-09-04 08:13  shaoshuai888  阅读(132)  评论(0编辑  收藏  举报

导航