我想在java中創建一個程序,其中線程是可觀察的對象,窗口是觀察者。我不明白的是,如何在更新方法上區分多個線程,它們都是做同樣的事情,以便我可以在窗口上單獨更新它們的位置。如何觀察多個可觀察的線程
回答
正如@PeterLawrey您可以使用名稱參數從Thread對象設置一個唯一的名稱,然後查詢您的帖子,發現其中一個是做什麼的註釋說明。構造函數如下:
public Thread(String name)
Allocates a new Thread object. This constructor has the same effect as Thread (null, null, name).
Parameters:
name - the name of the new thread
但是,對於更輕鬆地訪問線程它執行後,並跟蹤我建議使用ThreadGroup對象。來自api文檔:
線程組表示一組線程。另外,線程組還可以包含其他線程組。線程組形成一棵樹,其中除初始線程組以外的每個線程組都有一個父節點。
因此,可以使用該方法public int enumerate(Thread[] list, boolean recurse)
哪個
複製到指定的數組的所有活動線程該線程組英寸如果recurse爲true,則此方法遞歸枚舉此線程組的所有子組,並且還包括對這些子組中每個活動線程的引用。如果數組太短而不能容納所有的線程,則額外的線程將被靜默地忽略。
和getName()
該組中的所有線程。我希望它有幫助。乾杯
+1我建議你使用Runnable並給它一個名稱字段。 –
@PeterLawrey:現在不是'ThreadGroups'已經過時了嗎? – Cratylus
@Cratylus AFAIk線程組僅適用於應用程序服務器。我不使用它們。 –
如果名稱是不夠的,你可以考慮使用一個ThreadStatic
存儲每個線程其它信息:
class ThreadPosition {
[ThreadStatic]
private static int x;
/**
* Only call from thread.
**/
public static int getX()
{
return x;
}
}
- 1. 觀察員可以觀察多個可觀察物嗎?
- 2. 觀察者模式Java - 使用線程的多個觀察者
- 3. 一個可觀察事件的多個可觀察事件
- 4. 觀察者python中的可觀察類
- 5. 觀察AngularJS的可觀察性
- 6. Java觀察者和可觀察的
- 7. 如何實現文件觀察器來觀察多個目錄
- 8. KVO觀察與NSNotificationCenter觀察
- 9. 如何使用可觀察過濾可觀察對象
- 10. 如何將可觀察流轉換爲可觀察數組
- 11. 基於可觀察性,從可觀察對象中選擇可觀察對象
- 12. 如何讓ReactiveCommands觀察他們自己的IsExecuting可觀察的
- 13. RXAndroid:可觀察等待另一個可觀察的完成
- 14. 可觀察 - 將2個承諾轉換爲可觀察到的
- 15. 觀察回當前線程
- 16. 觀察員和線程
- 17. 如何綁定可觀察的觀察到在淘汰賽JS
- 18. 一個可觀察到的兩個觀察者
- 19. 觀察主線程時是否需要同步觀察值?
- 20. 當觀察者的觀察者的壽命長於可觀察到的
- 21. 如何使BlockingCollection可觀察?
- 22. 將可觀察值添加到另一個可觀察值
- 23. 可終止線程觀察器
- 24. 與具有多個可觀察多次
- 25. 簡單的觀察到/觀察員rxjs
- 26. knockoutjs - 可觀察到的可觀察值的對象的observableArray
- 27. Firebase可擴展性:整個數據集對多個觀察者的觀察
- 28. 觀察
- 29. 過濾器可觀察到的由可觀察到的
- 30. 無限可觀察到的HashMap作爲可觀察的
而不是讓他們都一樣,你可以將一個名稱與每個線程關聯。 –