如何讓線程A等待B執行結束后執行?


1.  使用條件變量

   判斷是否任務B已經做完,然后再執行任務A。

   測試代碼可看:https://blog.csdn.net/guochao6531/article/details/78075882

2.  使用CountDownLatch。CountDownLatch其實可以把它看作一個計數器,只不過這個計數器的操作是原子操作,同時只能有一個線程去操作這個計數器,也就是同時只能有一個線程去減這個計數器里面的值。你可以向CountDownLatch對象設置一個初始的數字作為計數值,任何調用這個對象上的await()方法都會阻塞,直到這個計數器的計數值被其他的線程減為0為止。

   測試代碼可看:https://zapldy.iteye.com/blog/746458

3.  使用join()方法。join()方法使得一個線程等待另外一個線程結束后再執行。例如,一個GUI (或者其他線程)使用join()方法等待一個子線程執行完畢:CompleteCalcThread t = new CompleteCalcThread();

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM