两个线程同时读一个文件会阻塞么?

结贴是美德 2013-04-21 07:48:40
每个线程自己new流类对象,只是读不写。这样会发生阻塞么?
...全文
1143 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
结贴是美德 2013-04-24
  • 打赏
  • 举报
回复
引用 8 楼 preferme 的回复:
一个线程,读取单个文件的时候,也会阻塞。数据从文件到程序,需要一个过程。 一般情况下,我们访问IO都是阻塞的形式,所以,读取一般也会被阻塞。 不太明白楼主的意思。 单个线程都会存在阻塞,多线程也当然会有阻塞的情况咯。
线程这块学得很差,我还不知道单个线程读数据也会阻塞呢。。。。
JPF1024 2013-04-24
  • 打赏
  • 举报
回复
引用 7 楼 wyb2dan 的回复:
不加锁。。无所谓。。同时执行读操作是没关系的。。如果是需要读写的话。。就要加锁了。。
++. 同时写可能导致并发问题(可以用Lock或者synchronized去加锁),同时读没问题的。。。
齐岳 2013-04-22
  • 打赏
  • 举报
回复
不加锁 不影响,都能读
wyb2dan 2013-04-22
  • 打赏
  • 举报
回复
不加锁。。无所谓。。同时执行读操作是没关系的。。如果是需要读写的话。。就要加锁了。。
冰思雨 2013-04-22
  • 打赏
  • 举报
回复
一个线程,读取单个文件的时候,也会阻塞。数据从文件到程序,需要一个过程。 一般情况下,我们访问IO都是阻塞的形式,所以,读取一般也会被阻塞。 不太明白楼主的意思。 单个线程都会存在阻塞,多线程也当然会有阻塞的情况咯。
ksw3110002873 2013-04-21
  • 打赏
  • 举报
回复
一。如果加锁synchronized同步的话,就不能同时读取,那一瞬间只能让一个线程操作! 二。如果不加锁,直接启动两个线程,操作同一个数据,就会同时操作这个数据!
Inhibitory 2013-04-21
  • 打赏
  • 举报
回复
如果不加锁就可以同时读,java.nio.channels.FileChannel.lock()
napier 2013-04-21
  • 打赏
  • 举报
回复
看你这个需求,应该不会的,可能有个等待过程
a597926661 2013-04-21
  • 打赏
  • 举报
回复
你猜 哈哈 楼主为什么不测试一下呢

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧