gpt4 book ai didi

java - scanner isn't synchronized 的意思

转载 作者:行者123 更新时间:2023-11-30 08:02:45 24 4
gpt4 key购买 nike

我正在研究 Java 中的扫描器和 BufferedReader 之间的区别,有一点我无法理解

Scanner 与 BufferedReader 不同步。

谁能解释一下这是什么意思?

最佳答案

从字面上看,就是它所说的意思。 BufferedReader API 的关键操作是使用 synchronized block 实现的,而 Scanner 中的等效操作则不是。

这意味着 BufferedReader 可以在多个线程1 之间“安全”共享,而 Scanner 则不能。 Scanner 本质上是非线程安全的,即使它包装了线程安全的输入源也是如此。


1 - 实际上,这并不能免除您对线程的思考。如果您有多个线程在没有某种形式的协调的情况下对同一个 BufferedReader 调用 read(...) 操作,那么就无法知道哪个线程将读取哪些字符从流。根据某些定义,这将使使用成为非线程安全的。将字符部署到正确的线程通常对应用程序的正确性很重要。

关于java - scanner isn't synchronized 的意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36672989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com