黑马程序员技术交流社区
标题:
thread的 yield() 方法问题?
[打印本页]
作者:
崔朋朋
时间:
2012-9-7 18:32
标题:
thread的 yield() 方法问题?
1.线程a执行完a.yield()方法后,a线程就转为 阻塞状态? 还是 就绪状态? .如果转为 就绪状态 ,那么 线程a 是不是还有可能继续获得cpu来执行?
2.能否依靠yield()方法来让其他线程获得运行机会?常用的让其他线程运行机会的方法都是什么?
作者:
杨千里
时间:
2012-9-7 18:56
你自己去查看文档吧
作者:
杨习平
时间:
2012-9-7 19:03
(1)线程的随机性原理
CPU的特点:在同一时刻,只能有一个线程执行。
所以,多个线程其实是在抢占CPU的资源。而CPU呢,却是在这些线程中做着高速的切换。
(2)线程的生命周期和在生命周期中各个状态的特点
新建:当一个线程对象被创建,但是没有开启,这个时候,只是对象线程对象开辟了
内存空间和初始化数据。
就绪:新建的对象调用start方法,就到了就绪状态。
在这个状态的线程对象,具有执行资格,没有执行权。
运行:当线程对象获取到了CPU的资源。
在这个状态的线程对象,具有执行资格,也具有执行权。
阻塞:运行过程中的线程由于某些原因(比如wait,sleep),释放了执行权和执行资格。
当然,他们可以回到运行状态。只不过,不是直接回到。
而是先回到就绪状态。
死亡:当线程对象调用的run方法结束,或者直接调用stop方法,就让线程对象死亡,
在内存中变成了垃圾。
作者:
以沫
时间:
2012-9-8 09:50
yield 我们俗称为让 将执yield的线程放在线程序列的尾部 只能说让当前线程不占用CUP 时间片 但是不能说下一个谁去占用 CUP 还是按照权限级别去分配CUP 时间片的 若一直yield 就永远不会执行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2