线程入门之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 中 ...
随机推荐
- Thinking In Java 读书笔记
面向对象语言,五个基本特性: 1)万物皆为对象. 2)程序是对象的集合,他们通过发送消息来告知彼此所要做的. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其类型.即:每个对象都是 ...
- 各种数据库连接代码的测试类(java)
测试类: public class Mytest { Connection conn=null; Statement stmt=null; String myDriver="com.mysq ...
- java技术用ssh从linux服务器下载数据
通常需要从linux服务器获取数据文件,而通常能有的访问方式只有ssh,所以就可以用ssh进行数据下载. java连接远程主机的方式有多种,这里和大家分享的是通过ssh方式连接远程主机,使用的是jsc ...
- oracle日期函数2!
1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当前时间减去7小时的时间 ...
- HDU 2846:Repository(Trie)
http://acm.hdu.edu.cn/showproblem.php?pid=2846 题意:给出N个模式串,再给出M个文本串,问每一个文本串在多少个模式串中出现. 思路:平时都是找前缀的,这里 ...
- canvas 动画
1.随机产生形状,做360度运转,带有一个开始开始按钮一个停止按钮 var canvas=$('.mycanvas'); canvas.attr("width",500);//$( ...
- Asp.net Vnext Routing
概述 本文已经同步到<Asp.net Vnext 系列教程 >中] ASP.NET 路由系统是主要负责两个操作: 它将传入的 HTTP 请求映射到路由处理程序给出的路由的集合. 路由系统的 ...
- Floyd-Warshall算法,简称Floyd算法
Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3). 使用条件&范围通常可以在任何图中使用,包括有向图.带负权边的图. Floyd-W ...
- 使用kendoui实现日期除去工作日
<input type="text" id="div-timePrint" value="" readonly="false ...
- Unity-Animator深入系列---剪辑播放后位置预判(Animator.Target)
回到 Animator深入系列总目录 animator.SetTarget(...);可以在播放前预判剪辑播放后的位置,但只限于人形动画 参数1是预判的关节,参数2是映射的剪辑时间 调用后通过targ ...