从java中的非同步方法调用synchronized时会发生什么

时间:2014-04-07 05:03:46

标签: java java.util.scanner

我的问题是关于扫描仪和BufferedReader类:例如当你这样做时:

Scanner scan=new Scanner(new BufferedReader(new FileReader("new.txt")));

这是否会使扫描实例利用事实BufferedReaderthread-safe。它是否是线程安全的,因为它是从线程安全缓冲区读取的?

我在某处读到这个新扫描仪具有bufferedReader的同步优势。

1 个答案:

答案 0 :(得分:3)

我认为Java doc没有提到BufferReader是线程安全的,但是从这个链接is buffered reader thread safe? 有人读取源代码,它就是!

然而,这并不意味着Scanner是线程安全的。在java doc http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html中,它说

A Scanner is not safe for multithreaded use without external synchronization.