程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java線程函數關鍵代碼詳細講述

Java線程函數關鍵代碼詳細講述

編輯:關於JAVA

Java線程函數在使用的時候需要大家詳細的看看相關代碼。本文就向大家介紹有關Java線程函數在使用中的問題。希望大家有所收獲。那麼首先我們來看看yIEld ()的使用方法。

1) 通過yield ()Java線程函數,可使線程進入可執行狀態,排程器從可執行狀態的線程中重新進行排程。所以調用了yIEld()的Java線程函數也有可能馬上被執行。

2) 當調用yIEld ()Java線程函數後,線程不會釋放它的“鎖標志”。

  1. class TestThreadMethod extends Thread{  
  2. public static int shareVar = 0;  
  3. public TestThreadMethod(String name){super(name);  
  4. }  
  5. public synchronized void run(){for(int i=0; i<4; i++){  
  6. System.out.print(Thread.currentThread().getName());  
  7. System.out.println(" : " + i);  
  8. Thread.yIEld();  
  9. }}  
  10. }  
  11. public class TestThread{public static void main(String[] args){  
  12. TestThreadMethod t1 = new TestThreadMethod("t1");  
  13. TestThreadMethod t2 = new TestThreadMethod("t2");  
  14. t1.start();  
  15. t1.start(); //(1)  
  16. //t2.start(); (2)  
  17. }  

運行結果為:

  1. t1 : 0  
  2. t1 : 1  
  3. t1 : 2  
  4. t1 : 3  
  5. t1 : 0  
  6. t1 : 1  
  7. t1 : 2  
  8. t1 : 3 

從結果可知調用yIEld()時並不會釋放對象的“鎖標志”。

如果把代碼(1)注釋掉,並去掉代碼(2)的注釋,結果為:

  1. t1 : 0  
  2. t1 : 1  
  3. t2 : 0  
  4. t1 : 2  
  5. t2 : 1  
  6. t1 : 3  
  7. t2 : 2  
  8. t2 : 3 

從結果可知,雖然t1線程調用了yIEld(),但它馬上又被執行了。以上就是對Java線程函數的詳細介紹。

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