多线程_yield()和sleep()方法比较
生活随笔
收集整理的這篇文章主要介紹了
多线程_yield()和sleep()方法比较
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
多線程示例展示:
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("兔子領先了....加油!!!!"+ 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 //無參數構造方法 7 public TortoiseThread(){} 8 //有參數構造方法 9 public TortoiseThread(String name){ 10 super(name); 11 } 12 13 public void run() { 14 while(true){ 15 System.out.println("烏龜領先了。。。加油。。。。。。"+getName() +" "+getPriority()); 16 Thread.yield(); 17 } 18 } 19 } TortoiseThread.javaTestThread線程:
1 package thread; 2 /** 3 * 功能:龜兔賽跑 4 * 使用線程 5 * yield(); 6 * @author superdrew 7 * 作用:暫停當前正在執行的線程對象,并執行其他線程 8 * 調用yield()當前線程進入就緒狀態,可以和其它的就緒狀態的線程爭取cpu 9 * 如果其它的線程優先級別高,那么其它的線程獲取cpu的機率就大一些 10 * 11 * yield()和sleep()區別 12 * 1.sleep()是暫停進入阻塞狀態,只有睡眠時間到了 進入就緒狀態 13 * yield()是直接進入就緒狀態,有可能剛進入就緒狀態就獲取到cpu又執行 14 * 2.yield()無異常 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?
轉載于:https://www.cnblogs.com/superdrew/p/8092869.html
總結
以上是生活随笔為你收集整理的多线程_yield()和sleep()方法比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: archsummit2017见闻和思考
- 下一篇: 20162305 2016-2017-2