gpt4 book ai didi

java - 所有异步任务是否可以同时读取ArrayList而没有任何延迟

转载 作者:行者123 更新时间:2023-12-02 11:39:09 26 4
gpt4 key购买 nike

在我的 Android 应用程序中,我有一个 arrayList,如下所述。

Public List<String> prefCoinList = new ArrayList<String>() ;

我将使用 THREAD_POOL_EXECUTOR 执行 10 个异步任务,如下所述。

new asyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, order);

每个异步任务将读取arrayList“prefCoinList”并检查特定值。

问题

  1. 所有 10 个异步任务都会在 arrayList“prefCoinList”上运行而不会出现任何死锁吗?

  2. 会出现任何线程锁/挂起问题吗?

  3. 如果可以同时读取数组列表,那么每个线程都会获得自己的副本(或者)所有线程都会等待并在轮到它们时读取数组列表?

最佳答案

如果列表在构造后未修改,那么您可以从多个线程访问它,不会出现问题。每个线程都会读取该对象的单个副本。

如果列表偶尔被修改,那么您可以使用 ReadWriteLock或其他访问控制机制。

关于java - 所有异步任务是否可以同时读取ArrayList而没有任何延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48709082/

26 4 0