为什么不在构造函数中启动线程?如何终止?
2022-08-31 21:02:53
我正在学习如何在Java中使用线程。我写了一个类,它实现Runnable并发运行到另一个线程。主线程处理侦听串行端口,而第二个线程将处理将数据发送到同一端口。
public class MyNewThread implements Runnable {
Thread t;
MyNewThread() {
t = new Thread (this, "Data Thread");
t.start();
}
public void run() {
// New Thread code here
}
第一个线程像这样启动第二个线程:
public class Main {
public static void main(String[] args) throws Exception{
new MyNewThread();
// First thread code there
}
}
这有效,但我的编译器标记了一个警告,说:在构造函数中启动新线程是危险的。这是为什么呢?
这个问题的第二部分是:如果我在一个线程(串行端口监听线程)中运行一个循环,并且我在第二个线程中键入exit命令,该怎么办。如何终止第一个线程?谢谢。