线程入门之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 中 ...
随机推荐
- 【MFC三天一个游戏】之 局域网黑白棋
欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 花了三天上班时间,妈的上班写就是不能静下心来,擦,要防BOSS巡山.... 以前也写过 ...
- 批处理命令——rem 和 pause
[1]rem命令简介 注释命令,在C语言中相当于/*----------*/,它并不会被执行,只是起到一个注释的作用,便于别人及自己将来阅读和维护脚本. 为了更具体的理解,请看示例: 新建一个文本文件 ...
- android 项目学习随笔十八(三级缓存)
xUtils的BitmapUtils模块用的就是三级缓存,在项目中尽量还是应用BitmapUtils 三级缓存(机制) import com.itheima.zhsh66.R; import andr ...
- shell 在文件名后面添加特定数据
for a in `ls mo-*`;do mv ${a%:} ${a%:}-1;done
- 鸟哥的linux私房菜学习记录之开机流程、模块管理与Loader
- Jquery 插件库
http://www.jq22.com/ 日期: http://laydate.layui.com/
- 编译busybox-1.24.1 制作文件系统
arm-linux-gcc 3.4.5 busybox-1.24.1.tar.bz21, 修改 Makefile找到以下2处修改为ARCH ?= armCROSS_COMPILE ?= arm-li ...
- 【python cookbook】【数据结构与算法】6.在字典中将键映射到多个值上
问题:一个能将键(key)映射到多个值的字典(即所谓的一键多值字典[multidict]) 解决方案:如果想让键映射到多值,需要将这多个值保持到另一个容器如列表或集合中: >>> d ...
- The Happy Worm 分类: POJ 排序 2015-08-03 18:57 5人阅读 评论(0) 收藏
The Happy Worm Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 4698 Accepted: 1047 Descr ...
- Emag eht htiw Em Pleh 分类: POJ 2015-06-29 18:54 10人阅读 评论(0) 收藏
Emag eht htiw Em Pleh Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2937 Accepted: ...