1

ByteBuffer只要 a和 a只读取ByteArrayInputStream底层证券,就“安全”吗?byte []如果我从一个然后另一个读取/获取,因为每个都有自己的内部标记/计数器等,是否有可能发生冲突?

4

2 回答 2

2

ByteBuffer.wrapandByteArrayInputStream的构造函数的来源来看,看起来这两个类都会存储您传递给它们的数组而无需复制。似乎这两个类都不会修改数组,从而可以安全地byte[]在多个 and 实例之间ByteBuffer共享同一个数组ByteArrayInputStream

于 2017-03-12T14:16:46.543 回答
1

这是安全的,有一个警告。必须有一个发生在链之前,以确保使用共享的线程byte[]可以看到对之前的最后一次写入,byte[]然后它变得“有效地不可变”。

简单来说就是线程在设置共享的时候需要同步,

于 2017-03-12T14:27:45.927 回答