Thread.yield( )方法
来源:互联网 发布:淘宝买酒靠谱吗 编辑:程序博客网 时间:2024/06/13 20:01
一. Thread.yield( )方法:
使当前线程从执行状态(运行状态)变为可执行态(就绪状态)。cpu会从众多的可执行态里选择,也就是说,当前也就是刚刚的那个线程还是有可能会被再次执行到的,并不是说一定会执行其他线程而该线程在下一次中不会执行到了。
Java线程中有一个Thread.yield( )方法,很多人翻译成线程让步。顾名思义,就是说当一个线程使用了这个方法之后,它就会把自己CPU执行的时间让掉,让自己或者其它的线程运行。
打个比方:现在有很多人在排队上厕所,好不容易轮到这个人上厕所了,突然这个人说:“我要和大家来个竞赛,看谁先抢到厕所!”,然后所有的人在同一起跑线冲向厕所,有可能是别人抢到了,也有可能他自己有抢到了。我们还知道线程有个优先级的问题,那么手里有优先权的这些人就一定能抢到厕所的位置吗? 不一定的,他们只是概率上大些,也有可能没特权的抢到了。
例子:
- package com.yield;
- public class YieldTest extends Thread {
- public YieldTest(String name) {
- super(name);
- }
- @Override
- public void run() {
- for (int i = 1; i <= 50; i++) {
- System.out.println("" + this.getName() + "-----" + i);
- // 当i为30时,该线程就会把CPU时间让掉,让其他或者自己的线程执行(也就是谁先抢到谁执行)
- if (i == 30) {
- this.yield();
- }
- }
- }
- public static void main(String[] args) {
- YieldTest yt1 = new YieldTest("张三");
- YieldTest yt2 = new YieldTest("李四");
- yt1.start();
- yt2.start();
- }
- }
运行结果:
第一种情况:李四(线程)当执行到30时会CPU时间让掉,这时张三(线程)抢到CPU时间并执行。
第二种情况:李四(线程)当执行到30时会CPU时间让掉,这时李四(线程)抢到CPU时间并执行。
阅读全文
0 0
- Thread静态方法yield
- Thread.yield( )方法
- Thread(优先级和yield方法)
- 线程的礼让(Thread.yield())方法
- 线程的礼让(Thread.yield())方法
- Thread 中join方法 和 yield()
- Thread.yield( )
- Thread yield
- Thread.yield()
- Thread.yield()
- Thread.yield( )
- 类Thread的三种方法:sleep(),join(),yield()
- 多线程操作的方法(sleep,)setPriority(Thread.MIN_PRIORITY);yield();
- Thread方法解释(join,sleep,yield,interrupt)
- Java Thread.sleep()、Thread.yield()
- Thread.sleep()和Thread.yield()
- java Thread yield() 让步
- Java Thread.yield详解
- java设计模式--单例模式
- 自定义Toast,有图标,有文字,不会重复显示
- Qualcomm WLAN Driver qcacld-2.0源码分析
- 关于高德地图不显示的问题
- HDU1087(递增子序列最大和)
- Thread.yield( )方法
- 从ios友盟统计说开去
- mongoDB 分片(shard)
- 解决扫描目标时IP被拉黑的小技巧
- 论文笔记——CVPR 2017 Dilated Residual Networks
- Python并行编程——multiprocessing
- 前端Js中利用Ajax异步调用后台处理数据
- 使用 Spark MLlib 做 K-means 聚类分析
- iOS开发算法--汉诺塔