当一个线程结束后,你不能再次使用start()方法运行它:会抛出异常。有人能解释一下为什么吗?这背后是什么样的架构决策?
当一个线程结束后,你不能再次使用start()方法运行它:会抛出异常。有人能解释一下为什么吗?这背后是什么样的架构决策?
最终,线程存在一段时间后就会死亡。毕竟,Thread
对象只是底层真实操作系统线程的代理。如果想要另一个类似的线程,请创建一个新实例。不要试图复活已经死亡的线程!
创建多个线程的简单实现:
import java.io.*;
class PWD extends Thread {
public void run() {
System.out.println(System.getProperty("user.dir"));
return;
}
}
public class HelloMultithread extends Thread{
public static void main(String[] args) throws java.io.IOException {
for(int i = 0; i < 10; i++){
PWD p = new PWD();
p.start();
}
}
}
作为一名新手,这个链接很有帮助:
http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html
从架构角度来看,更糟糕的情况是线程永远不会完成,你必须任意杀死它才能停止执行。
如果您想要运行一个例程多次,请在run()方法中放置一个循环。您可以使用回调方法将数据/信号发送回调用线程,并在发生时对其进行反应。