【发布时间】:2012-01-05 11:09:11
【问题描述】:
如果我有一台四核机器和 4 个打开且活动的套接字,是让 4 个线程并行地从这些套接字读取,还是只有一个线程迭代地读取套接字?套接字读取操作可以并行执行还是在系统级别的某个地方同步?
类似地,如果我有 4 个套接字需要写入一些数据,那么让 4 个线程同时写入这些套接字会更快,还是让一个线程完成所有写入更好?
似乎多核应该能够实现更高的吞吐量(当然,如果网络带宽不是瓶颈),但是我想知道是否是这种情况,因为毕竟最终只有一根以太网线(或其他介质),所以在某个时候,所有这些写入无论如何都必须同步,并且数据包将按顺序发送......
具体来说,如果我有一台机器运行 n 个线程,这些线程生成需要发送到另一台机器的请求,打开 n 个套接字并让每个线程写入它会更好吗?还是同步所有线程并通过单个套接字发送所有数据更好? 在接收端,最好有一个单独的套接字来读取?还是让 n 个套接字并行读取更好?如果无论如何都需要在阅读后同步所有阅读器怎么办?
【问题讨论】: