我希望能夠在我的 main 方法中創建多個線程,讓每個線程運行代碼以通過在每個線程上調用 run() 來生成某些對象,然后讓每個線程在完成后將這些對象添加到共享的 ArrayList 中。所以現在我有 myclass Threader implements Runnable{和 my public class Processor,我的main方法是唯一的方法。我的main方法在傳遞我想要的相關參數時創建i線程,然后調用start()它們中的每一個。在start()我的類的方法中,我Threader運行了一些我編寫的代碼,最后創建了一個自定義Document對象。當線程成功創建該對象時,我希望它能夠將其添加到documentsArrayList 類型<documents>。所以我假設我想讓 ArrayList 同步,但是我會在哪里實例化它以便我也可以從我的main方法中訪問它?
2 回答
慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
List在您的方法中創建一個同步的,main然后您可以將其傳遞給該main方法創建的線程。在方法中使用類似接口List而不是具體類ArrayList作為參數可以幫助您將其解耦Threader到具體類。
在該main方法中,您可以創建一個ArrayList然后使用Collections.synchronuzedList將其轉換為同步的List。
慕的地6264312
TA貢獻1817條經驗 獲得超6個贊
使 List 成為 Threader 類中的靜態字段,或在 main 中實例化它并將其傳遞給每個線程。無論哪種方式,您可能都想考慮使用同步集合,或者您必須實現自己的同步方法來添加、獲取等......
添加回答
舉報
0/150
提交
取消
