为什么不在构造函数中启动线程?如何终止线程?
- 论坛
- 为什么不在构造函数中启动线程?如何终止线程?
10 浏览
为什么不在构造函数中启动线程?如何终止线程?
我正在学习如何在Java中使用线程。我编写了一个实现了Runnable接口的类,以便与另一个线程并发运行。主线程负责监听串口,而第二个线程将处理向该串口发送数据。
public class MyNewThread implements Runnable { Thread t; MyNewThread() { t = new Thread (this, "Data Thread"); t.start(); } public void run() { // 新线程的代码在这里 } }
第一个线程像这样启动第二个线程:
public class Main { public static void main(String[] args) throws Exception { new MyNewThread(); // 第一个线程的代码在这里 } }
这样做是可以的,但是我的编译器会显示一个警告,提示:在构造函数中启动一个新线程是危险的。为什么会这样?
这个问题的第二部分是:如果我在一个线程中运行一个循环(即串口监听线程),并在第二个线程中输入一个退出命令,我如何让第一个线程终止?谢谢。