【发布时间】:2015-06-11 08:03:11
【问题描述】:
不明白为什么 mark() 和 reset() 是同步的,而 read() 为什么不同步?
【问题讨论】:
-
大概是因为在标记和重置之间会发生竞争,但不会读取。
-
考虑到这些方法对 InputStream 没有任何作用,这有点奇怪。如果您查看支持标记/重置的 ByterrayInputStream,您会发现大多数方法都是同步的,尽管
mark方法不是(这对我来说有点困惑)... -
BufferedInputStream的读取方法是synchronized
标签: java synchronization