我有以下问题,如果我在 java 中中断一个线程,一个正在运行 15 分钟的进程,它会停止进程,停止方法或完成这个进程,并且不允许其他人继续排队?
我有一个“线程”,它将调用一个方法,该方法将在插入 postgres 之后进行基于“access”和“postgres”的比较,如果我想停止调用此操作的线程,她将成功停止进程,还是等待他们完成?
最佳答案
它不会停止线程,除非在其中执行的方法在收到“中断”信号时愿意终止。抛出 InterruptedException 的方法通常属于此类。当然,调用链中的所有方法都需要以这样或那样的方式进行协作。
如果您的代码不调用“可中断”方法或有部分长时间不调用它们,则让它们检查标志 Thread.isInterrupted()
定期,并在它变成 true
时干净而优雅地终止.同样的事情,如果你曾经收到(并捕获,你应该)InterruptedException
不过,如果您的意图更具体,则可以改进您的问题。我正要解释“线程中断”协议(protocol)是如何工作的,但也许这不是您要找的。p>
关于java - Java中的线程中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18410502/