gpt4 book ai didi

java线程架构和应用程序设计

转载 作者:行者123 更新时间:2023-11-30 05:08:52 25 4
gpt4 key购买 nike

我有一个变量声明为:

private static List<String> _search_result_list = new ArrayList<String>( 15 );

在此应用程序中,有一系列线程连接到各种服务器并从提供给线程的 URL 获取数据。线程获取 URL 的结果,将其转换为文本,并将其存储在 _search_result_list 中。我的问题是关于同步线程访问 _search_result_list。解决这个问题的最佳方法是什么?

此外,线程不是在与 _search_result_list 相同的类中创建的,并且实际上无权访问 _search_result_list 的封闭类。将 _search_result_list 指针传递给创建线程的类,然后让该类为每个线程提供指向 _search_result_list 的指针是否足够。这是否需要同步,或者线程尝试同时写入 ArrayList 是否重要?

欢迎任何意见。

火星

最佳答案

最简单的是使用同步列表:

  1. 将您的列表包含在 Collections.synchronizedList(list)

    private static List<String> _search_result_list = 
    Collections.synchronizedList(new ArrayList<String>(15));
  2. 如果读取次数多于写入次数,则使用 CopyOnWriteArrayList .

关于java线程架构和应用程序设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4179211/

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