如何在Socket等Java类中实现超时阻塞调用

时间:2013-01-07 11:15:10

标签: java io timeout

Java中有许多API支持blockingcall(timeout),如Socket,Lock等。这些东西是如何在Java中实现的?

我试图查明,但它导致本机代码不可见:(

在本机级别的java中是否使用类似的方法,如创建线程并在超时时中断它?如果是这样,那么可以在Java级别完成,为什么要使用native?

1 个答案:

答案 0 :(得分:1)

it lead to native code which is not visible这通常意味着它没有用Java实现。通常它由OS实现。你可以获得Linux的源代码,但不能使用Windows AFAIK。

使用Java线程中断,实际上并不中断线程。它只是设置一个不会唤醒所有阻塞操作的标志。没有使用这种机制,因为它并不总是你想要的。