我有一個以上的處理器(線程)執行以上,有的線程依賴於另一個的結果..所以我想打線以定義的順序如何允許兩個線程以android中的預定義順序執行?
0
A
回答
2
您可以從第一個線程,第二線程中執行。
final Thread th2 = new Thread(new Runnable(){
public void run(){
doSomething2;
}
}
Thread th1 = new Thread(new Runnable(){
public void run(){
doSomething;
th2.start();
}
});
th1.start();
th2.join();
但你極有可能不需要第二個線程都:
Thread th1 = new Thread(new Runnable(){
public void run(){
doSomething;
doSomething2;
}
});
th1.start();
th1.join();
0
如果你在一個線程等待另一個線程來完成,有幾個選項。
一種是使用的CountDownLatch,
某處普通股閂 CountdownLatch閂=新CountdownLatch(1);
線程1,
doSomething();
countdownLatch.countdown();
線程2,
countdownLatch.await();
doSomethingElse();
倒計時閂鎖只能雖然使用一次。
java.util.concurrent有一堆其他類可以解決您的問題。 LinkedBlockingQueue,CyclicBarrier,Exchanger可能會有用。不知道更多細節,很難多說。
並且當評論和其他答案指出,如果可以的話,完全避免多個線程。
相關問題
- 1. 如何允許預定義數量的項目到java程序
- 2. WaitHandle.WaitAny允許線程按順序輸入
- 3. 執行線程的順序
- 4. 如何在SQL Server中以預定義的順序獲取行?
- 5. 以預先定義的順序執行測試用例
- 6. java線程如何排序線程的執行順序
- 7. Android:按順序執行兩個ScaleAnimations
- 8. CUDA線程執行順序
- 9. boost ::線程執行順序
- 10. 線程執行順序
- 11. 如何定義javascript執行順序
- 12. Java中的線程執行順序
- 13. 線程順序執行中的問題
- 14. 如何在Android中執行兩個線程時運行第三個線程
- 15. 允許用戶在線運行我的JAR預訂程序
- 16. Python自定義異常類應允許在程序執行後繼續執行
- 17. BackGroundWorker一次只允許兩個線程
- 18. 是什麼讓線程的執行順序不可預知?
- 19. Android允許僅對預定義活動/包進行調用
- 20. 允許使用execvp執行程序
- 21. 線程執行順序的Java
- 22. 線程執行的順序是什麼?
- 23. 控制線程的執行順序
- 24. 如何在NXC中控制線程的執行順序?
- 25. 如何在火炬中以預定義順序切片張量?
- 26. 允許用戶手動運行預定的程序從軌道
- 27. 只允許兩個線程在一個函數上運行
- 28. 如何確保多線程編程的執行順序?
- 29. C++線程池中的線程執行順序
- 30. 如何定義F#中的執行順序?
如果你需要連續執行處理,爲什麼你需要多個線程?你不能直接控制線程執行的順序,所以第二個線程將不得不處於阻塞狀態以等待第一個觸發的事件。這是可行的,還是第二個線程在做其他事情,在這種情況下,你最終會投票... – forsvarir 2011-03-19 10:08:53