【发布时间】:2013-04-04 15:59:48
【问题描述】:
我愿意使用ByteBuffer 来进行 JNI 和 C++ 的线程间通信。我在文档中找不到 ByteBuffer 的 getInt() 是否阻塞。那么,我是否需要做类似的事情:
if(byteBuffer.asIntBuffer().hasRemaining())
byteBuffer.getInt();
Thread.sleep(1000);
或
byteBuffer.getInt();
会阻塞所以不需要睡眠?
【问题讨论】:
-
它不是流,它不等待任何输入,它只是读取一个固定的内存位置。
-
有道理,谢谢!
-
ByteBuffers 根本没有同步;它们不是线程安全的。 -
@Louis 他们不是原子的?什么意思?
-
@quimnuss:不,它们不是原子的。
ByteBuffer没有任何线程安全性。如果没有记录,则不存在。
标签: java c++ java-native-interface blocking bytebuffer