java中thread的start()和run()的区别

Java线程start与run的区别
本文详细解析了Java中Thread类的start()与run()方法的区别,start()用于启动新线程并调用run(),而直接调用run()仅作为普通方法执行,不创建新线程。强调了start()才是实现多线程的关键。

java中thread的start()和run()有何区别?

一:run只是运行这个方法 并不会开启一个新的线程;
        start 是开启一个线程 并且运行run方法;

二: 1) start:
      用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调         用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始           执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。
      2) run:
      run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只         有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。总               结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。这两个方法应该都比较熟         悉,把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由jvm的内存机制规定的。并且           run()方法必须是public访问权限,返回值类型为void.。

三:之所以出现线程,就是为了更好的利用CPU,让她更加“精明”的干活。

       通过调用Thread类的start()方法来启动一个线程,
       这时此线程是处于就绪状态,
       并没有运行。
       然后通过此Thread类调用方法run()来完成其运行操作的,
       这里方法run()称为线程体,
       它包含了要执行的这个线程的内容,
       Run方法运行结束,
       此线程终止,
       而CPU再运行其它线程,

       而如果直接用Run方法,
       这只是调用一个方法而已,
       程序中依然只有主线程--这一个线程,
       其程序执行路径还是只有一条,
       这样就没有达到写线程的目的。

       记住:线程就是为了更好地利用CPU,
       提高程序运行速率的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值