【发布时间】:2018-07-06 17:12:30
【问题描述】:
我经常看到这些方法在 Java 9 的 InputStream 层次结构中不同步。想知道如果多个线程运行这些方法会怎样?例如,read(byte b[], int off, int len) 和 readNbytes 方法几乎相同,但 readNBytes 不同步。为什么?
【问题讨论】:
-
方法是否为
synchronized,是一个实现细节。因此,当我查看InputStream或者,例如FileInputStream,既不是,read(byte b[], int off, int len)也不是readNbytes,是synchronized,所以当你看到read是synchronized时,你一定是在查看不同的输入流实现。跨度>