程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java線程調劑之線程休眠用法剖析

Java線程調劑之線程休眠用法剖析

編輯:關於JAVA

Java線程調劑之線程休眠用法剖析。本站提示廣大學習愛好者:(Java線程調劑之線程休眠用法剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是Java線程調劑之線程休眠用法剖析正文


本文實例剖析了Java線程調劑之線程休眠用法。分享給年夜家供年夜家參考。詳細剖析以下:

Java線程調劑是Java多線程的焦點,只要優越的調劑,能力充足施展體系的機能,進步法式的履行效力。
 
這裡要明白的一點,不論法式員怎樣編寫調劑,只能最年夜限制的影響線程履行的順序,而不克不及做到精准掌握。
 
線程休眠的目標是使線程讓出CPU的最簡略的做法之一,線程休眠時刻,會將CPU資本交給其他線程,以便能輪換履行,當休眠必定時光後,線程會清醒,進入預備狀況期待履行。
 
線程休眠的辦法是Thread.sleep(long millis) 和Thread.sleep(long millis, int nanos) ,均為靜態辦法,那挪用sleep休眠的哪一個線程呢?簡略說,哪一個線程挪用sleep,就休眠哪一個線程。

/** 
* Java線程:線程的調劑-休眠 
* 
* @author leizhimin 2009-11-4 9:02:40 
*/ 
public class Test { 
 public static void main(String[] args) { 
  Thread t1 = new MyThread1(); 
  Thread t2 = new Thread(new MyRunnable()); 
  t1.start(); 
  t2.start(); 
 } 
} 
class MyThread1 extends Thread { 
 public void run() { 
  for (int i = 0; i < 3; i++) { 
   System.out.println("線程1第" + i + "次履行!"); 
   try { 
    Thread.sleep(50); 
   } catch (InterruptedException e) { 
    e.printStackTrace(); 
   } 
  } 
 } 
} 
class MyRunnable implements Runnable { 
 public void run() { 
  for (int i = 0; i < 3; i++) { 
   System.out.println("線程2第" + i + "次履行!"); 
   try { 
    Thread.sleep(50); 
   } catch (InterruptedException e) { 
    e.printStackTrace(); 
   } 
  } 
 } 
}

運轉成果以下:

線程2第0次履行! 
線程1第0次履行! 
線程1第1次履行! 
線程2第1次履行! 
線程1第2次履行! 
線程2第2次履行! 

Process finished with exit code 0

從下面的成果輸入可以看出,沒法精准包管線程履行順序。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved