加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 04:54:57 所属栏目:Java 来源:网络整理
导读:我正在编写的应用程序在某个阶段生成一个CharacterList字符.在这个阶段,我正在尝试创建一个线程来处理这个ArrayList.问题是如何将此ArrayList传递给线程 描述代码: class thisApp { /* Some initial processing creates an ArrayList - aList */ Runnable p
我正在编写的应用程序在某个阶段生成一个CharacterList字符.在这个阶段,我正在尝试创建一个线程来处理这个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 */
    }
}

注:如果多个线程同时访问aList,并且有一个或多个线程修改它,则需要同步所有相关代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读