日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java線程控制權(quán)源代碼的深入探討

Java線程控制權(quán)的問題十分重要,我們在不斷的學(xué)習(xí)中需要不斷的注意相關(guān)的問題。下面我們就來看看在源代碼中Java線程控制權(quán)式如何體現(xiàn)的。當(dāng)wait的時(shí)候其實(shí)就是已經(jīng)放出了線程的控制權(quán),所以one可以運(yùn)行。one運(yùn)行時(shí)調(diào)用notify后又喚醒了two線程所以打印順序才是:

wait
sleep
wake up

我覺得我解釋的已經(jīng)很清楚了。wait被調(diào)用的時(shí)候放棄鎖,而控制線程是否能使用內(nèi)容的關(guān)鍵就在于鎖,wait并不是thread的內(nèi)容,而來自于object。你可以這樣來理解wait,我wait下就把接力棒交出去了,我當(dāng)前的這個(gè)線程就暫停運(yùn)行,記住是當(dāng)前的線程。然后當(dāng)我交出的接力棒已經(jīng)又回到我手中的時(shí)候,也就是說其他的線程已經(jīng)完成了任務(wù)。這個(gè)時(shí)候我拿到接力棒繼續(xù)奔跑。

有時(shí)候你應(yīng)該把問題簡單化,建議你看看thinking in java第四版,我明白你是想觀察阻塞的出現(xiàn),你可以將one。start放到two。start的上邊就會(huì)明白什么意思了
 

 
 
 
  1. package test;  
  2. import java.util.LinkedList;  
  3. public class Test_2_A2 {  
  4. public static void main(String[] args) {  
  5. SubTreadOne one = new SubTreadOne();  
  6. SubTreadTwo two = new SubTreadTwo(one);  
  7. two.start();  
  8. try {  
  9. Thread.sleep(1000);  
  10. } catch (InterruptedException e) {  
  11. e.printStackTrace();  
  12. }  
  13. one.start();  
  14. }  
  15. }  
  16. class SubTreadOne extends Thread {  
  17. public SubTreadOne() {  
  18. }  
  19. public void run() {  
  20. try {  
  21. System.out.println("sleep");  
  22. Thread.sleep(3000);  
  23. synchronized (this) {  
  24. this.notifyAll();  
  25. }  
  26. }catch (InterruptedException e) {  
  27. e.printStackTrace();  
  28. }  
  29. }  
  30. }  
  31. class SubTreadTwo extends Thread {  
  32. SubTreadOne one;  
  33. public SubTreadTwo(SubTreadOne one) {  
  34. this.one = one;  
  35. }  
  36. public SubTreadTwo() {  
  37. }  
  38. public void run() {  
  39. try {  
  40. synchronized (one) {  
  41. System.out.println("wait");  
  42. one.wait();  
  43. System.out.println("wake up");  
  44. }  
  45. } catch (InterruptedException e) {  
  46. e.printStackTrace();  
  47. }  
  48. }  

以上就是對(duì)Java線程控制權(quán)有關(guān)代碼的詳細(xì)介紹。

【編輯推薦】

  1. 使用Java多線程實(shí)現(xiàn)任務(wù)分發(fā)
  2. 用Java多線程實(shí)現(xiàn)無阻塞讀取遠(yuǎn)程文件
  3. Java多線程中wait語句的具體使用方法
  4. Java多線程如何解決關(guān)鍵字封鎖問題
  5. Java多線程如何創(chuàng)建多個(gè)線程

文章題目:Java線程控制權(quán)源代碼的深入探討
文章位置:http://m.5511xx.com/article/codhpoi.html