如何停止一个正在运行的线程?
2021-02-08 12:18
标签:情况 通知 ali mil 主程 ott 导致 线程 int 使用共享变量的方式 在这种方式中,之所以引入共享变量,是因为该变量可以被多个执行相同任务的 线程用来作为是否中断的信号,通知中断线程的执行。 使用 interrupt 方法终止线程 如果一个线程由于等待某些事件的发生而被阻塞,又该怎样停止该线程呢?这种 情况经常会发生,比如当一个线程由于需要等候键盘输入而被阻塞,或者调用 Thread.join()方法,或者 Thread.sleep()方法,在网络中调用 ServerSocket.accept()方法,或者调用了 DatagramSocket.receive()方法时,都 有可能导致线程阻塞,使线程处于处于不可运行状态时,即使主程序中将该线程 的共享变量设置为 true,但该线程此时根本无法检查循环标志,当然也就无法立 即中断。这里我们给出的建议是,不要使用 stop()方法,而是使用 Thread 提供的 interrupt()方法,因为该方法虽然不会中断一个正在运行的线程,但是它可以使一 个被阻塞的线程抛出一个中断异常,从而使线程提前结束阻塞状态,退出堵塞代 码。 如何停止一个正在运行的线程? 标签:情况 通知 ali mil 主程 ott 导致 线程 int 原文地址:https://www.cnblogs.com/programb/p/12771107.html