gpt4 book ai didi

java - Java object.wait 可以被中断吗?

转载 作者:行者123 更新时间:2023-12-01 06:17:19 25 4
gpt4 key购买 nike

Java文档中说中断函数可以中断object.wait。但在我的测试中,在windows中是可以的,可以中断,但是在Linux中是错误的,不能中断。

原因似乎是从 Glibc 2.1.3 开始,pthread_cond_wait 无法再被系统信号中断。

我的理解正确吗?

public static void main(String[] args)
{

Thread t = new Thread()
{
public void run()
{
Object obj = new Object();
synchronized(obj) {
try {
obj.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
System.out.println("interrupted");
e.printStackTrace();
}
}
}
};

t.start();

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.interrupt();
System.out.println("interrupt is called");
try {
Thread.sleep(100000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

最佳答案

Java API 规定等待线程可以被另一个线程中断。 Java API 始终是正确的。所有 JVM 实现都必须遵守其规定。

关于java - Java object.wait 可以被中断吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21399247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com