gpt4 book ai didi

java NIO - 多线程访问 channel

转载 作者:行者123 更新时间:2023-12-01 13:19:44 31 4
gpt4 key购买 nike

根据java.NIO的文档,缓冲区是线程不安全的,而大多数情况下的 channel (FileChannel、SocketChannel等)可以安全地被多个线程使用。我在文档中找不到的是对例如发生的情况的清晰描述。两个线程开始同时从 FileChannel 读取数据。第一个操作是否读取前 N 个字节,或者是否有可能将前 M 个字节放入第一个 channel 的缓冲区,然后接下来的几个字节将进入第二个缓冲区,然后我们上下文切换将更多内容读取到第一个缓冲区中,等等。有人知道多线程访问 channel 的保证是什么吗?

最佳答案

读取“涉及文件的位置”,因此会阻止其他线程的后续读取。但是,无论是单线程还是多线程,都无法保证读取返回多少字节,除了如果还有剩余字节可供读取,则返回值大于零。

关于java NIO - 多线程访问 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144463/

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