Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 套接字操作是否在系统级并行执行?_Sockets_Tcp_Io - Fatal编程技术网

Sockets 套接字操作是否在系统级并行执行?

Sockets 套接字操作是否在系统级并行执行?,sockets,tcp,io,Sockets,Tcp,Io,如果我有一个四核机器和4个开放的活动插槽,那么让4个线程并行读取这些插槽,还是让一个线程迭代读取这些插槽,速度更快?套接字读取操作可以并行执行,还是在系统级的某个位置同步 类似地,如果我有4个套接字需要向其中写入一些数据,那么让4个线程同时向这些套接字写入数据会更快,还是让一个线程完成所有写入操作会更好 似乎多核应该能够实现更高的吞吐量(当然,如果网络带宽不是瓶颈的话),但是我想知道是否是这样,因为毕竟,最终只有一根以太网线(或其他介质),所以在某个时候,所有这些写操作都必须同步,数据包将按顺序

如果我有一个四核机器和4个开放的活动插槽,那么让4个线程并行读取这些插槽,还是让一个线程迭代读取这些插槽,速度更快?套接字读取操作可以并行执行,还是在系统级的某个位置同步

类似地,如果我有4个套接字需要向其中写入一些数据,那么让4个线程同时向这些套接字写入数据会更快,还是让一个线程完成所有写入操作会更好

似乎多核应该能够实现更高的吞吐量(当然,如果网络带宽不是瓶颈的话),但是我想知道是否是这样,因为毕竟,最终只有一根以太网线(或其他介质),所以在某个时候,所有这些写操作都必须同步,数据包将按顺序发送

具体地说,如果我有一台运行n个线程的机器,这些线程生成需要发送到另一台机器的请求,那么打开n个套接字并让每个线程向其写入是否更好?还是同步所有线程并通过单个套接字发送所有数据更好?
在接收端,最好有一个单独的插座来读取数据?还是让n个套接字并行读取更好?如果所有读卡器在读取后都需要同步,该怎么办?

套接字操作基本上与应用程序异步;缓冲的;而且,如果幸运的话,内核内部是并发的:唯一需要同步的重要状态是每个连接。然而,速率决定步骤实际上是网络的带宽,即使只有一个线程,也很容易使其饱和。Web浏览器通常在每个网页上打开4到8个线程,以获取HTML本身和图像等。

套接字操作在很大程度上与应用程序是异步的;缓冲的;而且,如果幸运的话,内核内部是并发的:唯一需要同步的重要状态是每个连接。然而,速率决定步骤实际上是网络的带宽,即使只有一个线程,也很容易使其饱和。Web浏览器通常在每个网页上打开4到8个线程,以获取HTML本身和图像等