我尝试使用LockSupport类来控制线程的运行和等待,但是发现了一些问题。
Thread thread = Thread.currentThread();
thread.interrupt(); // Add interrupt state
Thread.interrupted(); // Clean up the interrupt state
LockSupport.parkNanos(10_000_000_000L); // Wait 10 seconds
System.out.println("Finish!");
但是结果不是等待10秒。
Thread thread = Thread.currentThread();
// thread.interrupt();
// Thread.interrupted();
LockSupport.parkNanos(10_000_000_000L); // Wait 10 seconds
System.out.println("Finish!");
这是一次成功的等待10秒。
我尝试以其他方式等待
Thread thread = Thread.currentThread();
thread.interrupt(); // Add interrupt state
Thread.interrupted(); // Clean up the interrupt state
synchronized (thread) {
thread.wait(10_000); // Wait 10 seconds
}
System.out.println("Finish!");
等待也很正常。
我想知道为什么。