亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當我希望我的線程共享一個 ArrayList 時,我在哪里實例化 ArrayList

當我希望我的線程共享一個 ArrayList 時,我在哪里實例化 ArrayList

蕭十郎 2022-03-10 10:34:25
我希望能夠在我的 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


查看完整回答
反對 回復 2022-03-10
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

使 List 成為 Threader 類中的靜態字段,或在 main 中實例化它并將其傳遞給每個線程。無論哪種方式,您可能都想考慮使用同步集合,或者您必須實現自己的同步方法來添加、獲取等......


查看完整回答
反對 回復 2022-03-10
  • 2 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號