java - 如何在 InputStream 上加锁并在读取完成后释放

标签 java multithreading inputstream

我想在 java.io.InputStream 对象周围放置一个锁并锁定该流。当我读完后,我想释放锁。我怎样才能实现这个目标?

最佳答案

你的意思是?

InputStream is =
synchronized(is) { // obtains lock
    // read is
} // release lock

使用一个线程读取或写入流通常是一个好主意,否则您可能会遇到一些令人困惑和随机的错误。 ;)

如果你也想使用锁

InputStream is =
Lock lockForIs = 
lockForIs.lock();
try {
    // read is
} finally {
    lockForIs.unlock();
}

关于java - 如何在 InputStream 上加锁并在读取完成后释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343042/

相关文章:

Java 字节流。读操作有时读不到写入的内容

java - 如何检测右键单击->关闭窗口关闭窗口?

java - 为什么 future.get() 对于 Volley RequestFuture 总是超时?

python - 在 Python 线程中使用 Intvar/DoubleVar 是否安全?

java - 如何将 BufferedImage 对象转换为 InputStream 或 BLOB?

java - 包含多个文件的InputStream

java - 如何将电子邮件和密码值保存在从选择查询检索到的变量中

java - Android 中带有 editText 的 AlertDialog

java - Hashtable get 方法是否返回多个值?

Java 从 ExecutorService 设置回调