![](/img/trans.png)
[英]An arrayList method that reads a file and returns an ArrayList from the collected data. how do i call that array in my main method or others?
[英]When I want my threads to share an ArrayList, where do I instantiate the ArrayList, and how do I access it from the main method?
我希望能夠在我的main方法中創建多個線程,讓每個線程運行代碼通過在每個線程上調用run()來生成某些對象,然后讓每個線程在完成后將這些對象添加到共享的ArrayList中。 因此,現在我有我的class Threader implements Runnable{
和我的public class Processor
, public class Processor
具有我的main
方法作為唯一方法。 我的main
方法在傳遞我想要的相關參數的同時創建了i
線程,然后在每個線程上調用start()
。 在我的Threader
類的start()
方法中,我遍歷了我編寫的一些代碼,最后創建了一個自定義Document
對象。 當線程成功創建該對象后,我希望它能夠將其添加到類型為<documents>
的documents
ArrayList中。
所以我假設我想使ArrayList同步,但是我應該在哪里實例化它,以便也可以從我的main
方法訪問它?
將List設為Threader類中的靜態字段,或在main中實例化它,並將其傳遞給每個線程。 您可能想要考慮使用同步集合的任何一種方式,或者必須實現自己的同步方法以進行添加,獲取等操作。
在您的main
方法中創建一個同步List
,然后可以將其傳遞給main
方法創建的線程。 使用類似的接口List
,而不是一個具體的類象ArrayList
在你的方法參數可以幫助你的解耦Threader
到具體的類。
在main
方法中,可以創建一個ArrayList
,然后使用Collections.synchronuzedList
將其轉換為同步List
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.