java - Java中的线程中断

标签 java multithreading interrupt

我有以下问题,如果我在 java 中中断一个线程,一个正在运行 15 分钟的进程,它会停止进程,停止方法或完成这个进程,并且不允许其他人继续排队?

我有一个“线程”,它将调用一个方法,该方法将在插入 postgres 之后进行基于“access”和“postgres”的比较,如果我想停止调用此操作的线程,她将成功停止进程,还是等待他们完成?

最佳答案

它不会停止线程,除非在其中执行的方法在收到“中断”信号时愿意终止。抛出 InterruptedException 的方法通常属于此类。当然,调用链中的所有方法都需要以这样或那样的方式进行协作。

如果您的代码不调用“可中断”方法或有部分长时间不调用它们,则让它们检查标志 Thread.isInterrupted()定期,并在它变成 true 时干净而优雅地终止.同样的事情,如果你曾经收到(并捕获,你应该)InterruptedException

不过,如果您的意图更具体,则可以改进您的问题。我正要解释“线程中断”协议(protocol)是如何工作的,但也许这不是您要找的。

关于java - Java中的线程中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18410502/

相关文章:

interrupt - 这是禁用 PIC24 中断的安全方法吗?

python - 完成当前迭代后,如何结束带有套接字操作的无限循环?

java - 找不到类 : org. junit.tests.AllTests - UBUNTU/LINUX

java - Excel文件读写的改进[POI,Java]

.net - WPF UI 更新细节

JavaScript 方法执行中断

java - 读取文本行并放入 JTable

java - 我如何从 Java 中一般检测数据库是否为 'empty'

c++ - 让线程每个周期调用一次init

c++ - 为什么 std::lock_guard 不可移动?