免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7942 | 回复: 16
打印 上一主题 下一主题

[C] 多个线程同时读写同一文件的操作是安全的吧? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-05 13:06 |只看该作者 |倒序浏览
请问多个线程同时读写同一文件的操作是否安全?

论坛徽章:
0
2 [报告]
发表于 2007-11-05 14:02 |只看该作者
不安全,要同步控制

论坛徽章:
0
3 [报告]
发表于 2007-11-05 15:44 |只看该作者
如果只是读的话,在多进程中,是不会出错的,每个进程都有自己的offset,在Linux 中,线程和进程用的相同的内核结果,所以我猜在多线程中,也不会出错。

论坛徽章:
0
4 [报告]
发表于 2007-11-06 10:04 |只看该作者
那比如说,线程R1~Rm,read文件F,线程W1~Wn,write文件F,不同步控制的话,会有什么问题呢?

论坛徽章:
0
5 [报告]
发表于 2007-11-06 10:17 |只看该作者
最好还是同步下下....

论坛徽章:
0
6 [报告]
发表于 2007-11-06 10:26 |只看该作者
需要做线程同步吧

论坛徽章:
0
7 [报告]
发表于 2007-11-06 10:27 |只看该作者
文件锁

论坛徽章:
0
8 [报告]
发表于 2007-11-06 10:30 |只看该作者
又读又写,不同步,数据就乱七八糟了。

论坛徽章:
0
9 [报告]
发表于 2007-11-06 11:18 |只看该作者
原帖由 cugb_cat 于 2007-11-6 10:30 发表
又读又写,不同步,数据就乱七八糟了。


线程A在读写文件F的时候,会被另一个读写文件F的线程B打断?

还是线程B会被OS挂起,直到线程A读写F完成?

论坛徽章:
0
10 [报告]
发表于 2007-11-06 11:25 |只看该作者
原帖由 dongpy 于 2007-11-6 11:18 发表


线程A在读写文件F的时候,会被另一个读写文件F的线程B打断?

还是线程B会被OS挂起,直到线程A读写F完成?

加锁后会挂起,如果不加锁,那两个线程是同时操作文件的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP