执行后:
from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.connect(('www.example.com', 80))
Windows任务管理器报告的线程数量从1跳到4.我的Python版本是Python 2.7.2(默认,2011年6月12日,15:08:59)[MSC v.1500 32位(英特尔) )]在win32上。
我正在跟踪一个更大的错误,导致一个简单的reduce()与原始参数挂起,并发现了这一点。
我已经检查了Python的socket.py,它不包含对线程模块的任何引用。我还浏览了相关的C源文件,对于这种行为我仍然一无所知。
在成功连接之前似乎没有产生产卵。如果传递IP地址而不是域名,则不会产生产卵。 如果('127.0.0.1',some_port)作为目标地址传递 - 但是使用一个额外的线程而不是3,则会发生产卵。
为什么这样,线程是在一个简单的socket.connect()上生成的?这是正常的吗?