【发布时间】:2018-10-18 09:36:51
【问题描述】:
我开发了一个多线程系统,它为每个客户端请求创建一个子进程,以通过 tcp 套接字读取文件并将其发送到客户端。
我很难确定每次读取文件时使用互斥锁是否会提高性能,还是让子进程在不使用互斥锁的情况下同时从硬盘读取文件会更好。
文件大小平均为 500 ko,我们估计同时 tcp 连接最多为每分钟 2000 个。
PS : 程序以 2000 字节为单位读取每个文件,发送每个缓冲区并循环直到传输完成
【问题讨论】:
-
让操作系统和磁盘驱动程序以及磁盘和网络进行互斥。不要试图提供帮助。 您需要时使用互斥锁。
-
同意谢谢,但如果同时有太多并发连接读取文件,会不会耗尽服务器资源。从长远来看,硬盘驱动器不会变慢并压碎吗?
-
如果你同意,我不知道你为什么要问。您可能希望限制活动并发连接的数量,但这与互斥锁没有任何关系。
-
谢谢,但这种不尊重是不必要的
标签: multithreading sockets tcp concurrency