Is setting a timeout on ObjectInputStream.readObject() safe?

后端 未结 2 1220
忘掉有多难
忘掉有多难 2021-01-14 17:45

I have an ObjectInputStream connected to an ObjectOutputStream through a socket, and I\'ve been using Socket.setSoTimeout() to make

相关标签:
2条回答
  • 2021-01-14 18:17

    I have a thread constantly getting new data through this function but I want to be able to stop it by setting a boolean to false. The thread has to keep polling the boolean and can't if it's blocked by readObject()

    You can use Thread.interrupt to let it throw an InterruptedException, or in this case an InterruptedIOException. Make sure you don't swallow exceptions!

    0 讨论(0)
  • 2021-01-14 18:26

    If you set the timeout shorter than the normal delays which might occur in reading a stream, you can expect the timeout to be in effect when the stream is still properly active.

    100 ms seems like a long time, but not if there's disk or network traffic involved. Try timing out on something ridiculous, like a second.

    0 讨论(0)
提交回复
热议问题