Java并发编程--Thread中start()与run()方法的区别概要

 

跟大家分享一下今天看到的一个实例,代码如下:


start ()方法启动线程时,当前线程处于就绪状态,一旦发现CPU有空余时间处理线程时,才会执行run()方法,结果是两个线程同时运行,上图的执行结果让我查阅了下start()相关源码,截图如下:



在启动线程的时候会判断当前threadStatus!=0,也就是当前线程不是新建线程时执行以下代码;在finally代码块处理的时候还要注意一个ThreadGroup线程组的概念:多线程的多处理器系统,线程组的重要作用就是锁定策略,即尝试锁定一个级别尽可能多线程树,否则就从子线程到父线程锁定。线程启动时,判断当前启动状态是否为True,否则在线程组中移除该线程的关联树结构,这是代码执行结果的不同的原因。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值