
比如多个线程 copy 文件到同一个目录里面。这样不会有什么问题吧。linux 系统
1 yicong135 2020 年 2 月 19 日 又不能提高 IO 性能 |
2 leosirius666a OP @yicong135 是因为 linux 系统会锁住目录吗? |
3 rekulas 2020 年 2 月 19 日 他说的是你线程开再多,也受限于 IO 写的上限速度,没有什么实际的意义 |
4 luckyc 2020 年 2 月 19 日 当然可以,目录又不是文件, 不存在占用的问题. |
5 leosirius666a OP @l4ever linux 中不是一切都是文件吗, |
8 ujued 2020 年 2 月 19 日 via iPhone 可以。比如下载多个文件到下载目录 |
9 ipwx 2020 年 2 月 19 日 机械硬盘是你最后的瓶颈啊大哥。不是说你想并发写就能写得了,受限于硬件啊。 |
10 ipwx 2020 年 2 月 19 日 在机械硬盘的情况下,顺序单线程写比多线程写快至少一个数量级,因为不需要寻道。SSD 会好很多,但是顺序单线程写还是最快的。 |
11 blu10ph 2020 年 2 月 19 日 @leosirius666a 一切都是文件的意思是一切硬件设备都可以映射为一个文件,通过 io 控制设备,而不是真的是个文件,实际上很多东西也并没有映射为文件,比如 socket~ |
12 Lax 2020 年 2 月 19 日 回复标题的问题:如果不是压测目录操作,比如批量创建空文件,不会有问题;即使压测估计你的场景也压测不出 bug。 说一说要操作的文件数量和文件大小,就知道是不是顺序读写了。另外硬盘的类型也有影响,机械硬盘的顺序读写操作速度快于随机读写,SSD 盘就不一样了 |
13 Mithril 2020 年 2 月 19 日 没用的,多线程硬盘写入就只会更慢。 |
14 icylogic 2020 年 2 月 19 日 …… 建议你读一下 everything is a file 的真正含义,这个 file 不是“文件”(一段存储在磁盘等介质上的数据),而是一种 common interface for I/O devices,其实可以理解成一种简单的多态 https://yarchive.net/comp/linux/everything_is_file.html |