Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Multithreading socket.connect()是否阻止其他线程?_Multithreading_Python 2.6_Asyncsocket - Fatal编程技术网

Multithreading socket.connect()是否阻止其他线程?

Multithreading socket.connect()是否阻止其他线程?,multithreading,python-2.6,asyncsocket,Multithreading,Python 2.6,Asyncsocket,如果我在不同的线程中发出多个socket.connect(),单个socket.connect()会使当前线程等待ACK响应,还是同时另一个线程能够发出socket.connect()?这两个选项“当前线程等待ACK”和“另一个线程能够连接”它们不是相互排斥的。两者都是正确的。这就是线程的全部要点,一个线程可以继续,而另一个线程被阻塞。是的,但我更喜欢使用socket.connect()调用的线程不会浪费CPU时间等待ACK。我认为需要基于事件的套接字类select()不是事件驱动的,所以它不是

如果我在不同的线程中发出多个socket.connect(),单个socket.connect()会使当前线程等待ACK响应,还是同时另一个线程能够发出socket.connect()?

这两个选项“当前线程等待ACK”和“另一个线程能够连接”它们不是相互排斥的。两者都是正确的。这就是线程的全部要点,一个线程可以继续,而另一个线程被阻塞。

是的,但我更喜欢使用
socket.connect()
调用的线程不会浪费CPU时间等待ACK。我认为需要基于事件的套接字类<当使用
connect()
时,code>select()不是事件驱动的,所以它不是那么好。当线程被阻塞等待确认时,调度程序不会给它任何时间片。在某个时刻,ACK从网络接收,通过TCP堆栈,然后再次取消阻止线程。没有CPU周期的浪费。+1-@UlrichEckhardt是正确的-没有周期的浪费,连接将并行运行。