189 8069 5689

java_6线程创建的方式-创新互联

一、创建线程的方法

1.继承Thread类

实现步骤:
(1)创建一个继承于Thread类的子类
(2)重写Thread类的run()方法【线程执行的操作声明在run()中】
(3)创建Thread类的子类的对象
(4)通过此对象调用start()方法【①启动线程②调用当前线程对象的run方法】
代码

创新互联公司从2013年开始,是专业互联网技术服务公司,拥有项目成都做网站、网站设计、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元黎城做网站,已为上家服务,为黎城各地企业和个人服务,联系电话:13518219792
//(1)创建一个继承于Thread类的子类
class MyThread1 extends Thread{
    public MyThread1(String name){
        super(name);
    }
        //(2)重写Thread类的run()方法
    @Override
    public void run() {
        System.out.println("第一种创建线程");
        }
    }
}
public class ThreadTest{
    public static void main(String[] args) {
        //(3)创建Thread类的子类的对象
        MyThread1 t1=new MyThread1();
        //(4)通过此对象调用start()方法
        t1.start();
        }
}

2.实现Runnable接口

实现步骤
(1)创建一个实现了Runnable接口的类
(2)该实现类 去实现Runnable中的抽象方法run()
(3)创建实现类的对象
(4)将此对象作为参数传递到Thread类的构造器中,创建 Thread类的对象
【Thread构造方法源码:public Thread(Runnable target)】
(5)通过Thread类的对象调用start()
代码

//1.创建一个实现了Runnable接口的类
class MyThread2 implements Runnable{
    @Override
    //2.实现类去实现Runnable中的抽象方法run()
    public void run() {
        System.out.println("第二种创建线程:实现Runnable接口");
            }
     }
         public class ThreadTest1 {
    public static void main(String[] args) {
        //3.创建实现类的对象
        MyThread2 m=new MyThread2();
        // 4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
        Thread thread = new Thread(m);
        // 5.通过Thread类的对象调用start()
         thread.start();

二、说明

在前边说过start()方法的作用:
(1)启动线程
(2)调用当前线程的run()方法
那么问题来了:为什么在使用Runnable接口创建线程的方法中,明明是Thread类的对象调用的start(),为什么最终会是实现Runnable接口的类的run()方法被执行,而不是Thread类的run()方法被执行?
原因下次再说,要去上课了
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
呼·······,我回来啦!
(1)首先来看一下Thread类的run()方法的源码:
java_6 线程创建的方式
说明:如果target非空,就执行target的run()方法,那么target又是什么?
(2)再来看一下Thread的一个构造方法Thread(Runnable target)
java_6 线程创建的方式
我们发现target是一个Runnable类型的变量,该变量会作为参数传入Thread类的构造器中。
java_6 线程创建的方式
说明:target就是实现了Runnable接口的实现类的实例对象。
因为该对象非空,所以Thread的对象在调用了自身的run()方法,然后发现target对象非空,因此转而执行了实现类的run()方法。

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


文章题目:java_6线程创建的方式-创新互联
网页路径:http://cdxtjz.cn/article/hedcj.html

其他资讯