Java Thread.yield方法

4人阅读 评论(0) 收藏 举报
分类:

yield方法:让线程从运行状态进入到就绪状态,让其它相同优先级的线程获取执行权,但是执行yield()方法后,其它线程不一定会获取到执行权,也有可能当前线程能重新获取到执行权。如果yield()方法在同步模块中,执行yield()方法后,不会有锁的释放。

public class ThreadYield extends Thread {
	
	private String name;
	
	public ThreadYield(String name){
		this.name = name;
	}
	
	public void run() {
		for(int i = 0; i<10;i++){
			Thread.yield();
			System.out.println(name + "----- is runing:"+i);
		}
	}
	
	
	public static void main(String[] args) {
		
		ThreadYield thread1 = new ThreadYield("thread1");
		ThreadYield thread2 = new ThreadYield("thread2");
		thread1.start();
		thread2.start();
		
	}
	
	

}

执行结果:

thread2----- is runing:0
thread1----- is runing:0
thread2----- is runing:1
thread1----- is runing:1
thread2----- is runing:2
thread1----- is runing:2
thread2----- is runing:3
thread1----- is runing:3
thread2----- is runing:4
thread1----- is runing:4
thread2----- is runing:5
thread1----- is runing:5
thread2----- is runing:6
thread2----- is runing:7
thread1----- is runing:6
thread2----- is runing:8
thread1----- is runing:7
thread2----- is runing:9
thread1----- is runing:8
thread1----- is runing:9

查看评论

Java Thread类的 yield()、join()

yield: 解释它之前,先简述
  • jjwwmlp456
  • jjwwmlp456
  • 2014-08-16 22:34:30
  • 10065

Java Thread.yield详解

Java线程中有一个Thread.yield( )方法,很多人翻译成线程让步。顾名思义,就是说当一个线程使用了这个方法之后,它就会把自己CPU执行的时间让掉,让自己或者其它的线程运行。 打个比方:现...
  • dabing69221
  • dabing69221
  • 2013-12-19 22:51:51
  • 43364

线程的礼让(Thread.yield())方法

在多线程里面有各种各样的方法,其中有一个礼让的方法很有意思,现实生活中所谓的礼让,就是“委屈自己方便他人”!比如过马路,汽车礼让行人,当然这是在国外,国内过个斑马线是要看司机的性格的!那么在线程中是个...
  • hello_word2
  • hello_word2
  • 2016-10-21 17:54:11
  • 4946

Thread yield

线程调用yield()方法后,表明自己做的事已经完成,让出自己的cpu时间给其他线程使用。 让出后,该线程可以重新获得cpu分配的权利,状态变为了可执行状态。 sleep与yield的状态...
  • hhzxj2008
  • hhzxj2008
  • 2011-11-26 00:23:04
  • 5081

java线程研究---(5)暂停Thread:yield

暂停Thread yield方法: 静态方法Thread.yield()yield方法会让Thread对象直接从执行(running)状态进入等待执行(runnable)状态。这里...
  • miqi770
  • miqi770
  • 2015-08-10 14:49:51
  • 1658

java中yield()方法如何使用

Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程。yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yiel...
  • zhuwei898321
  • zhuwei898321
  • 2017-06-02 15:08:16
  • 1636

Java Thread类的yield()和join()的区别和用法

yield: 解释它之前,先简述下,多线程的执行流程:多个线程并发请求执行时,由cpu决定优先执行哪一个,即使通过thread.setPriority(),设置了     线程的优先级,也...
  • shineflowers
  • shineflowers
  • 2014-11-24 14:53:58
  • 897

Java并发编程之volatile、synchronized、yield、join

volatile、synchronized、yield、join说明
  • loongshawn
  • loongshawn
  • 2017-07-20 19:00:21
  • 351

Thread.yield( )

ava中yield(),sleep()以及wait()的区别往往混淆了这三个函数的使用。从操作系统的角度讲,os会维护一个ready queue(就绪的线程队列)。并且在某一时刻cpu只为ready ...
  • lxg2000
  • lxg2000
  • 2007-06-12 11:36:00
  • 4320

《Java编程思想第四版》笔记---21章(3) 并发补充: volatile关键字解析

转自:http://www.cnblogs.com/dolphin0520/p/3920373.html Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友...
  • u012861467
  • u012861467
  • 2016-08-27 00:24:55
  • 738
    个人资料
    持之以恒
    等级:
    访问量: 999
    积分: 193
    排名: 36万+
    文章分类
    文章存档