java - 当您从 Java 中的非同步方法调用同步方法时会发生什么

标签 java java.util.scanner

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

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

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

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

最佳答案

在我看来,Java 文档没有提到 BufferReader 是线程安全的,但是从这个链接 is buffered reader thread safe? 有人阅读了源代码,确实如此!

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

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

关于java - 当您从 Java 中的非同步方法调用同步方法时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22903973/

相关文章:

java - 如何使用 Java 在 SAML 2.0 中的签名下添加 KeyInfo 和 X509Data

java - 使用 java.nio.FileSystems 操作 DOCX 文件

java - Hibernate 无法使用 JBOSS 检索数据

java - 如何在Java中循环遍历多个输入行

java - 扫描仪正在创建 NoSuchElementException 错误,我不明白为什么

java Scanner 只读取前 2048 个字节

java - CompareTo 比较方法违反了其一般契约

java - 文本文件内容更改事件

java.util.scanner - D 有没有像 Java 的 Scanner 这样的东西?

java - 为什么我的程序在没有相应的打印语句的情况下打印值?