多线程_yield()和sleep()方法比较
生活随笔
收集整理的這篇文章主要介紹了
多线程_yield()和sleep()方法比较
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
多線程示例展示:
RabbitThread.java線程:
1 package thread; 2 3 /** 4 * 兔子的線程 5 * @author superdrew 6 */ 7 public class RabbitRunnable implements Runnable{ 8 9 public void run() { 10 while(true){ 11 12 System.out.println("兔子領(lǐng)先了....加油!!!!"+ 13 Thread.currentThread().getName()+" "+Thread.currentThread().getPriority()); 14 15 //Thread.yield(); 16 } 17 } 18 19 } RabbitThread.javaTortoiseThread.java線程:
1 package thread; 2 3 public class TortoiseThread extends Thread{ 4 //線程屬性名字: name 5 private String name; 6 //無(wú)參數(shù)構(gòu)造方法 7 public TortoiseThread(){} 8 //有參數(shù)構(gòu)造方法 9 public TortoiseThread(String name){ 10 super(name); 11 } 12 13 public void run() { 14 while(true){ 15 System.out.println("烏龜領(lǐng)先了。。。加油。。。。。。"+getName() +" "+getPriority()); 16 Thread.yield(); 17 } 18 } 19 } TortoiseThread.javaTestThread線程:
1 package thread; 2 /** 3 * 功能:龜兔賽跑 4 * 使用線程 5 * yield(); 6 * @author superdrew 7 * 作用:暫停當(dāng)前正在執(zhí)行的線程對(duì)象,并執(zhí)行其他線程 8 * 調(diào)用yield()當(dāng)前線程進(jìn)入就緒狀態(tài),可以和其它的就緒狀態(tài)的線程爭(zhēng)取cpu 9 * 如果其它的線程優(yōu)先級(jí)別高,那么其它的線程獲取cpu的機(jī)率就大一些 10 * 11 * yield()和sleep()區(qū)別 12 * 1.sleep()是暫停進(jìn)入阻塞狀態(tài),只有睡眠時(shí)間到了 進(jìn)入就緒狀態(tài) 13 * yield()是直接進(jìn)入就緒狀態(tài),有可能剛進(jìn)入就緒狀態(tài)就獲取到cpu又執(zhí)行 14 * 2.yield()無(wú)異常 sleep()有 15 * 16 * 17 */ 18 public class TestThread1 { 19 public static void main(String[] args) { 20 RabbitRunnable rr = new RabbitRunnable(); 21 Thread tr = new Thread(rr); 22 tr.setName("兔子線程"); 23 tr.start(); 24 25 TortoiseThread tt = new TortoiseThread("烏龜線程"); 26 tt.start(); 27 } 28 } TestThread.java?
轉(zhuǎn)載于:https://www.cnblogs.com/superdrew/p/8092869.html
總結(jié)
以上是生活随笔為你收集整理的多线程_yield()和sleep()方法比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: archsummit2017见闻和思考
- 下一篇: 20162305 2016-2017-2