Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在线程上多次调用start()时会发生什么情况_Java_Multithreading - Fatal编程技术网

Java 在线程上多次调用start()时会发生什么情况

Java 在线程上多次调用start()时会发生什么情况,java,multithreading,Java,Multithreading,如果我在线程A上调用start(),使其运行,然后在线程A仍在运行时再次调用start(),会发生什么 例如: myThread.start(); // myThread is running... myThread.start(); 将引发异常。启动后,无法将线程恢复到“等待启动”状态,因此无论线程在第一次启动后处于何种状态,第二次启动都将处于错误状态。您可以自己尝试看看。尝试一次后发生了什么?在Javadoc中查找时发现了什么?零研究-1.如果我想重新启动线程,怎么办?我在线程上

如果我在线程A上调用
start()
,使其运行,然后在线程A仍在运行时再次调用
start()
,会发生什么

例如:

myThread.start();

// myThread is running...  

myThread.start(); 

将引发异常。启动后,无法将线程恢复到“等待启动”状态,因此无论线程在第一次启动后处于何种状态,第二次启动都将处于错误状态。

您可以自己尝试看看。尝试一次后发生了什么?在Javadoc中查找时发现了什么?零研究-1.如果我想重新启动线程,怎么办?我在线程上调用中断,并在线程运行方法上检查它以退出,然后调用start?如果线程没有终止?@dariofrongi:这是个坏主意。对线程进行编码,使其在第一时间完成您想做的事情,这样您就不必去搞乱它。如果你中断它,它持有线程恢复所需的锁,你就会死锁。我必须实现一个线程,在他的构造函数中使用蓝牙设备,并在run方法中尝试连接到这个设备,但是如果在Bleutoth线程运行的主线程中,用户再次单击connect并选择另一个蓝牙设备,我想停止蓝牙线程并使用新设备再次运行它,hoow可以吗?@dariofrongi:让该线程单独运行并创建一个新线程。是的,但要终止该线程,请调用中断并在运行方法时检查它?