相关疑难解决方法(0)

为什么不在构造函数中启动一个线程?如何终止?

我正在学习如何在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 
    }
Run Code Online (Sandbox Code Playgroud)

第一个线程开始第二个像这样:

public class Main {
    public static void main(String[] args) throws Exception{
        new MyNewThread();
        // First thread code there
    }  
}
Run Code Online (Sandbox Code Playgroud)

这有效,但我的编译器标记了一个警告说:在构造函数中启动一个新线程是危险的.为什么是这样?

这个问题的第二部分是:如果我在一个线程中运行一个循环(串口侦听线程),我在第二个线程中键入一个exit命令.如何获得第一个终止线程?谢谢.

java multithreading terminate

46
推荐指数
2
解决办法
4万
查看次数

标签 统计

java ×1

multithreading ×1

terminate ×1