同时开400个线程,每个线程打开一个不同的文件,结果fopen大都耗时到几百毫秒至几秒,有谁能帮我详细解释一下这种现象吗?
谢谢两位的回答,一般正常情况下打开文件最多16ms左右,但在几百个上千个线程同时做打开文件操作的情况下,打开文件操作达到几百ms甚至几秒,而且测试中打开的都是空文件。
望达人解答啊!
多线程中 fopen 耗时1s 您相信吗?
答案:3 悬赏:0 手机版
解决时间 2021-04-14 12:30
- 提问者网友:聂風
- 2021-04-14 06:05
最佳答案
- 五星知识达人网友:慢性怪人
- 2021-04-14 07:29
你是怎么记的时?我建议你把计时和fopen原子化,这样才准确。像你说的超过秒的级别是不现实的,只可能是被抢占了。
全部回答
- 1楼网友:神也偏爱
- 2021-04-14 10:37
你的内存是不是很小啊?你的系统硬盘是不是没空间啦?你的电脑是不是中毒啦?……
如果没有硬件问题,这也是可能的,如果你用读写、读方式打开一个比较大的文件,系统会把这个文件从头到尾读一遍,并复制到内存里再执行工作,因此如果文件较大时会发生这种现象
- 2楼网友:醉吻情书
- 2021-04-14 09:01
不太可能,除非你的线程里面有太多的IO操作或者文件异常的大,下面这个程序我试了一下1s都不到
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯