首页 > 编程语言 > 详细

Java中启动线程start和run方法的区别

时间:2015-10-01 12:55:09      阅读:197      评论:0      收藏:0      [点我收藏+]

         Java中启动线程有两种方式,继承Thread类以及实现接口Runnable,由于Java无法实现多重继承,故经常通过实现接口Runnable来创建线程。但是无论哪种方式创建都可以通过start()和run( )方法来启动线程,下面就来介绍一下两者的区别。

         start():通过该方法启动线程的同时也创建了一个线程,真正实现了多线程,这是无需等待run()方法中的代码执行完毕就可以直接执行下面的代码,通过start创建的线程处于可运行状态,当得到CPU时间片后就会执行其中的run方法,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。

        run():通过run方法启动线程其实就是调用一个类中的方法,并没有创建一个线程,程序中还是只有主线程,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。

        下面是两种创建线程的代码示例:

通过继承Thread类

package com.Test.Tread;

public class ThreadDemo02 extends Thread{
    public void run(){
        System.out.println("线程启动!");
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       ThreadDemo02 thread = new ThreadDemo02();
       thread.start();
    }

}

通过实现Runnable接口

package com.Test.Tread;

public class ThreadDemo03 implements Runnable{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("线程启动02");
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       Thread thread01 = new Thread(new ThreadDemo03());
       thread01.start();
    }

}


Java中启动线程start和run方法的区别

原文:http://my.oschina.net/kaixuan1995/blog/513061

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!