zoukankan      html  css  js  c++  java
  • 如何停止一个正在运行的线程?

    使用共享变量的方式 

    在这种方式中之所以引入共享变量是因为该变量可以被多个执行相同任务的 

    线程用来作为是否中断的信号通知中断线程的执行

    使用 interrupt 方法终止线程 

    如果一个线程由于等待某些事件的发生而被阻塞又该怎样停止该线程呢这种 

    情况经常会发生比如当一个线程由于需要等候键盘输入而被阻塞或者调用 

    Thread.join()方法或者 Thread.sleep()方法在网络中调用 

    ServerSocket.accept()方法或者调用了 DatagramSocket.receive()方法时 

    有可能导致线程阻塞使线程处于处于不可运行状态时即使主程序中将该线程 

    的共享变量设置为 true,但该线程此时根本无法检查循环标志当然也就无法立 

    即中断这里我们给出的建议是不要使用 stop()方法而是使用 Thread 提供的 

    interrupt()方法因为该方法虽然不会中断一个正在运行的线程但是它可以使一 

    个被阻塞的线程抛出一个中断异常从而使线程提前结束阻塞状态退出堵塞代 

  • 相关阅读:
    快速幂
    1112个人赛,最长回文串常见算法讨论
    11-05-sdust-个人赛赛后随想
    UVA 1149 Bin Packing
    UVa 1608,Non-boring sequences
    UVa 10954,Add All
    UVa 714,Copying Books
    Careercup
    Careercup
    Careercup
  • 原文地址:https://www.cnblogs.com/programb/p/12771107.html
Copyright © 2011-2022 走看看