我有一個以上的處理器(線程)執行以上,有的線程依賴於另一個的結果..所以我想打線以定義的順序如何允許兩個線程以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. WaitHandle.WaitAny允許線程按順序輸入
- 2. 如何在SQL Server中以預定義的順序獲取行?
- 3. java線程如何排序線程的執行順序
- 4. boost ::線程執行順序
- 5. 線程順序執行中的問題
- 6. Java中的線程執行順序
- 7. 如何在Android中執行兩個線程時運行第三個線程
- 8. Python自定義異常類應允許在程序執行後繼續執行
- 9. Android允許僅對預定義活動/包進行調用
- 10. 允許使用execvp執行程序
- 11. 線程執行順序的Java
- 12. 如何在火炬中以預定義順序切片張量?
- 13. 只允許兩個線程在一個函數上運行
- 14. C++線程池中的線程執行順序
- 15. 如何確保多線程編程的執行順序?
- 16. 如何定義F#中的執行順序?
- 17. 線程同步執行操作順序
- 18. 多線程代碼 - 力執行順序
- 19. 如何確定HttpModules的執行順序?
- 20. 如何指定before_filters執行的順序?
- 21. 程序的執行順序
- 22. 如何在Talend中定義工作執行順序?
- 23. 是否可以在Parallel.For中定義執行順序?
- 24. 執行的線程(不是線程組)JMeter的順序
- 25. 如何維護消費者線程的執行順序
- 26. CLR(.NET)允許兩個應用程序在相同的執行環境中執行嗎?
- 27. 如何只允許從HTML表單傳遞預定義的值?
- 28. 只允許我的android應用程序執行java中的端點api
- 29. 允許PHP中的任何順序的多個參數
- 30. 不允許後臺執行。 Android O pendingintent
如果你需要連續執行處理,爲什麼你需要多個線程?你不能直接控制線程執行的順序,所以第二個線程將不得不處於阻塞狀態以等待第一個觸發的事件。這是可行的,還是第二個線程在做其他事情,在這種情況下,你最終會投票... – forsvarir 2011-03-19 10:08:53