[英]Implementing multiple threads in Java
我对 Java 很陌生,我的项目需要在每次用户按下按钮时创建一个新线程。 我使用过 MVC 和 Swing,但我正在尝试找到一种方法来创建用户需要的多个线程。 我查看了一些信息并尝试使用 arrayList 来收集所有线程。 但是我对此有一些问题:
private ThreadLibrary thread_lib = new ThreadLibrary();
public TestArray(int val) {
for (int i=0; i < val; i++) {
thread_lib.addThread( new Thread(new runThread()).start() );
}
}
由于新运算符不返回任何内容,因此不会向 arrayList 添加任何内容。 有什么想法或更好的数据结构可以使用吗? 谢谢
这个,
thread_lib.addThread( new Thread(new runThread()).start() )
应该,
Thread t = new Thread(new runThread());
thread_lib.addThread(t);
t.start();
不要这样做,而是查看ThreadPoolExecutor class
new
肯定会返回您正在构建的任何内容。 它是返回void
的start
方法。 尝试将线程 object 存储在变量中并单独启动它。
public TestArray(int val) {
for (int i = 0; i < val; i++) {
Thread thread = new Thread(new runThread());
thread.start();
thread_lib.addThread(thread);
}
}
new
确实返回了Thread
; 是对start()
的调用返回 void。 您可以简单地分两步执行此操作:
Thread t = new Thread(new runThread());
t.start();
thread_lib.addThread(t);
现在,您是否真的需要将这些放在一个数组中是值得商榷的; 线程运行后,您无能为力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.