gpt4 book ai didi

java - 当我希望我的线程共享 ArrayList 时,我在哪里实例化 ArrayList,以及如何从 main 方法访问它?

转载 作者:行者123 更新时间:2023-12-02 01:45:44 24 4
gpt4 key购买 nike

我希望能够在我的 main 方法中创建多个线程,让每个线程运行代码以通过在每个线程上调用 run() 来生成某些对象,然后让每个线程在完成后将这些对象添加到共享的 ArrayList 中。所以现在我有我的 class Threader implements Runnable{和我的public class Processor ,其中有我的main方法作为唯一方法。我的main方法创建 i线程,同时传入我想要的相关参数,然后调用 start()在他们每个人身上。在 start()我的方法Threader我运行了一些我编写的代码,最后创建了一个自定义 Document目的。当线程成功创建该对象时,我希望它能够将其添加到 documents <documents> 类型的 ArrayList .

所以我假设我想让 ArrayList 同步,但是我应该在哪里实例化它,以便我也可以从我的 main 访问它方法?

最佳答案

在您的 main 方法中创建一个同步的 List,然后您可以将其传递给由 main 方法创建的线程。使用像 List 这样的接口(interface)而不是像 ArrayList 这样的具体类作为方法中的参数可以帮助您将 Threader 与具体类解耦.

main方法中,您可以创建一个ArrayList,然后使用Collections.synchronuzedList将其转换为同步List .

关于java - 当我希望我的线程共享 ArrayList 时,我在哪里实例化 ArrayList,以及如何从 main 方法访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53698966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com