gpt4 book ai didi

Java 多线程 - 将数据结构传递给线程

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:35:54 24 4
gpt4 key购买 nike

我正在编写的应用程序在某个阶段生成一个字符数组列表。在这个阶段,我正在尝试创建一个线程来处理这个 ArrayList。问题是我如何将这个 ArrayList 传递给线程

描述性代码:

class thisApp {
/* Some initial processing creates an ArrayList - aList */

Runnable proExec = new ProcessList (); //ProcessList implements Runnable
Thread th = new Thread(proExec);
}

ProcessList 的描述性代码:

public class ProcessList implements Runnable {
public void run() {
/* Access the ArrayList - aList - and do something upon */
}
}

我的问题是:如何在 run() 中传递和访问 aList?

最佳答案

您可以简单地将 aList 传递给 ProcessList 的构造函数,它可以保留引用直到需要它:

class thisApp {
/* Some initial processing creates an ArrayList - aList */

Runnable proExec = new ProcessList (aList);
Thread th = new Thread(proExec);
}

public class ProcessList implements Runnable {
private final ArrayList<Character> aList;
public ProcessList(ArrayList<Character> aList) {
this.aList = aList;
}
public void run() {
/* use this.aList */
}
}

N.B. 如果 aList 将被多个线程并发访问,并且有一个或多个线程修改它,则所有相关代码都需要同步.

关于Java 多线程 - 将数据结构传递给线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6309732/

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