sleep(),yield()
来源:互联网 发布:阿里巴巴商学院 知乎 编辑:程序博客网 时间:2024/06/07 00:30
sleep 方法使当前运行中的线程睡眼一段时间,进入不可运行状态,这段时间的长短是由程序设定的,不会释放锁标志。
yield 方法使当前线程让出CPU占有权,但让出的时间是不可设定的。yield()也不会释放锁标志。
yield()方法对应了如下操作: 先检测当前是否有相同优先级的线程处于同可运行状态,如有,则把 CPU 的占有权交给此线程,否则继续运行原来的线程。所以yield()方法称为"退让",它把运行机会让给了同等优先级的其他线程。
sleep方法允许较低优先级的线程获得运行机会,但yield()方法执行时,当前线程仍处在可运行状态,所以不可能让出较低优先级的线程些时获得CPU占有权。 在一个运行系统中,如果较高优先级的线程没有调用 sleep 方法,又没有受到 I/O阻塞,那么较低优先级线程只能等待所有较高优先级的线程运行结束,才有机会运行。
yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。所以yield()只能使同优先级的线程有执行的机会。
0 0
- sleep(),yield()
- yield() sleep() wait() 区别
- sleep()和yield()方法
- wait、sleep、yield区别
- yield() sleep() wait() 区别
- yield , sleep, wait
- sleep和yield区别
- sleep join yield wait
- sleep yield wait
- wait、sleep、yield
- sleep、yield和join
- sleep()、yield()和wait()
- yield() sleep()wait()区别
- join sleep yield
- sleep、yield、wait知识点
- sleep() wait() yield() join()
- 多线程--sleep、yield对比
- sleep和yield,join
- 解决Splash应用启动白屏问题
- (二)共享受限资源
- (三)终结任务
- 常用代码片段
- PHP 线程安全与非线程安全版本的区别深入解析
- sleep(),yield()
- (四)线程之间的协作
- 第3章 IP:网际协议
- 自定义shell脚本服务开机自启动
- Tomcat简介
- OBS源码阅读笔记--取出licence和update
- web.xml
- Servlet
- c#调用控件时出现各种错误提醒