线程入门之yield
package com.thread;
/**
* <yiedl:把cpu让给其他线程>
* <功能详细描述>
*
* @author 95Yang
*/
public class Thread_yield
{
public static void main(String[] args)
{
Thread3 t31 = new Thread3("------t31");
Thread3 t32 = new Thread3("======t32");
t31.start();//并行执行
t32.start();//并行执行
}
}
class Thread3 extends Thread{
Thread3(String name){
super(name);
}
public void run(){
for (int i = 1; i <= 100; i++)
{
System.out.println(getName()+" : "+i);
if(i%10 == 0){
yield();//当整除以10的时候,让出cpu给其他线程
}
}
}
}
结果:每当遇到i整除10,就会让其他线程执行
======t32 : 1
------t31 : 1
======t32 : 2
------t31 : 2
======t32 : 3
------t31 : 3
======t32 : 4
------t31 : 4
======t32 : 5
------t31 : 5
======t32 : 6
------t31 : 6
======t32 : 7
------t31 : 7
------t31 : 8
======t32 : 8
------t31 : 9
======t32 : 9
------t31 : 10
======t32 : 10
------t31 : 11
======t32 : 11
------t31 : 12
======t32 : 12
------t31 : 13
======t32 : 13
------t31 : 14
======t32 : 14
------t31 : 15
======t32 : 15
------t31 : 16
======t32 : 16
------t31 : 17
======t32 : 17
------t31 : 18
======t32 : 18
------t31 : 19
======t32 : 19
------t31 : 20
======t32 : 20
------t31 : 21
======t32 : 21
------t31 : 22
======t32 : 22
------t31 : 23
======t32 : 23
------t31 : 24
======t32 : 24
------t31 : 25
======t32 : 25
------t31 : 26
======t32 : 26
------t31 : 27
======t32 : 27
------t31 : 28
======t32 : 28
------t31 : 29
======t32 : 29
------t31 : 30
======t32 : 30
------t31 : 31
======t32 : 31
------t31 : 32
======t32 : 32
------t31 : 33
======t32 : 33
------t31 : 34
======t32 : 34
------t31 : 35
======t32 : 35
------t31 : 36
======t32 : 36
------t31 : 37
======t32 : 37
------t31 : 38
======t32 : 38
------t31 : 39
======t32 : 39
------t31 : 40
======t32 : 40
------t31 : 41
======t32 : 41
------t31 : 42
======t32 : 42
------t31 : 43
======t32 : 43
------t31 : 44
======t32 : 44
------t31 : 45
======t32 : 45
------t31 : 46
======t32 : 46
------t31 : 47
======t32 : 47
------t31 : 48
======t32 : 48
------t31 : 49
======t32 : 49
------t31 : 50
======t32 : 50
------t31 : 51
======t32 : 51
------t31 : 52
======t32 : 52
------t31 : 53
======t32 : 53
------t31 : 54
======t32 : 54
------t31 : 55
======t32 : 55
------t31 : 56
======t32 : 56
------t31 : 57
======t32 : 57
------t31 : 58
======t32 : 58
------t31 : 59
======t32 : 59
------t31 : 60
======t32 : 60
------t31 : 61
======t32 : 61
------t31 : 62
======t32 : 62
------t31 : 63
======t32 : 63
------t31 : 64
======t32 : 64
------t31 : 65
======t32 : 65
------t31 : 66
======t32 : 66
------t31 : 67
------t31 : 68
======t32 : 67
------t31 : 69
======t32 : 68
------t31 : 70
======t32 : 69
------t31 : 71
======t32 : 70
------t31 : 72
======t32 : 71
------t31 : 73
======t32 : 72
------t31 : 74
======t32 : 73
------t31 : 75
======t32 : 74
------t31 : 76
======t32 : 75
------t31 : 77
======t32 : 76
------t31 : 78
======t32 : 77
------t31 : 79
======t32 : 78
------t31 : 80
======t32 : 79
------t31 : 81
======t32 : 80
------t31 : 82
======t32 : 81
------t31 : 83
======t32 : 82
------t31 : 84
======t32 : 83
------t31 : 85
======t32 : 84
------t31 : 86
======t32 : 85
------t31 : 87
======t32 : 86
------t31 : 88
======t32 : 87
------t31 : 89
======t32 : 88
------t31 : 90
======t32 : 89
------t31 : 91
======t32 : 90
------t31 : 92
======t32 : 91
------t31 : 93
======t32 : 92
------t31 : 94
======t32 : 93
------t31 : 95
======t32 : 94
------t31 : 96
======t32 : 95
------t31 : 97
======t32 : 96
------t31 : 98
======t32 : 97
------t31 : 99
======t32 : 98
------t31 : 100
======t32 : 99
======t32 : 100
线程入门之yield的更多相关文章
- 线程同步之 yield() wait()
yield()没有参数. sleep 方法使当前运行中的线程睡眼一段时间,进入不可运行状态,这段时间的长短是由程序设定的,yield 方法使当前线程让出CPU占有权,但让出的时间是不可设定的.yiel ...
- 线程同步以及 yield() wait()和notify()、notifyAll()
1.yield() 该方法与sleep()类似,只是不能由用户指定暂停多长时间,并且yield()方法只能让同优先级的线程有执行的机会. 2.wait()和notify().notifyAll() 这 ...
- 线程同步以及yield()、wait()、Notify()、Notifyall()
一.线程同步 1.线程同步的目的是为了保护多个线程访问一个资源时对资源的破坏. 2.线程同步方法是通过锁来实现,每个对象都有切仅有一个锁,这个锁与一个特定的对象关联,线程一旦获取了对象锁,其他访问该对 ...
- Java线程sleep,yield,join,wait方法详解
1.sleep() 当一个线程调用sleep方法后,他就会放弃cpu,转到阻塞队列,sleep(long millis)方法是Thread类中的静态方法,millis参数设定线程睡眠的时间,毫秒为单位 ...
- python线程入门
目录 python线程入门 线程与进程 线程 总结 参考 python线程入门 正常情况下,我们在启动一个程序的时候.这个程序会先启动一个进程,启动之后这个进程会启动起来一个线程.这个线程再去处理事务 ...
- 线程中的yield()
属于本地方法 /** * A hint to the scheduler that the current thread is willing to yield * its current use o ...
- 【多线程】线程礼让 Thread.yield()
线程礼让 Thread.yield() 礼让线程,让当前正在执行的线程暂停,但不阻塞 : 将线程从运行状态转为就绪状态 : 让cpu重新调度,礼让不一定成功!看CPU心情. 代码示例: /** * @ ...
- C#线程 入门
Threading in C# 第一部分: 入门 介绍和概念 C#支持通过多线程并行执行代码.线程是一个独立的执行路径,能够与其他线程同时运行.C#客户端程序(控制台,WPF或Windows窗体) ...
- C#线程入门---转载
C#中的线程(一)入门 文章系参考转载,英文原文网址请参考:http://www.albahari.com/threading/ 作者 Joseph Albahari, 翻译 Swanky Wu 中 ...
随机推荐
- 数据库订正脚本性能优化两则:去除不必要的查询和批量插入SQL
最近在做多数据库合并的脚本, 要将多个分数据库的表数据合并到一个主数据库中. 以下是我在编写数据订正脚本时犯过的错误, 记录以为鉴. 不必要的查询 请看以下语句: regiondb = db.Houy ...
- V4L2应用程序框架-二【转】
本文转载自:http://blog.csdn.net/tommy_wxie/article/details/11371439 V4L2驱动框架 主设备号: 81 次设备号: 0-63 64 ...
- TI CC254x BLE教程 1
约定, 第一次翻译这种东西, 专有名词的翻译原则还是不太清楚, 总之涉及有可能误解的词, 都用双语, 如果是简单的, 直接英文或者中文, 取决于我是否能找到中文合适的词来翻译. 何为BLE: 1. 是 ...
- MyBatis的Dao层注入SqlSession
有点坑爹,以前没用过Mybatis,最近才用,而且一直用Mybatis推荐的接口映射的方式,但是今天有人告诉我接口方式用得少,大多还是采用从配置文件里面读sql的方式,当然接口也是类似的,都是利用ma ...
- C# Community Projects
Community Supported C# Drivers See the officially supported MongoDB C# driver mongodb-csharp driver ...
- java利用zxing编码解码一维码与二维码
最近琢磨了一下二维码.一维码的编码.解码方法,感觉google的zxing用起来还是比较方便. 本人原创,欢迎转载,转载请标注原文地址:http://wallimn.iteye.com/blog/20 ...
- 【PHP设计模式 05_DanLi.php】单例模式
<?php /** * [单例模式] * 总结:防止外部new对象:防止子类继承:防止克隆. */ header("Content-type: text/html; charset=u ...
- Windows驱动开发(中间层)
Windows驱动开发 一.前言 依据<Windows内核安全与驱动开发>及MSDN等网络质料进行学习开发. 二.初步环境 1.下载安装WDK7.1.0(WinDDK\7600.16385 ...
- 记得ajax中要带上AntiForgeryToken防止CSRF攻击
经常看到在项目中ajax post数据到服务器不加防伪标记,造成CSRF攻击 在Asp.net Mvc里加入防伪标记很简单在表单中加入Html.AntiForgeryToken()即可. Html.A ...
- Accepted Necklace
Accepted Necklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...