Python порождает потоки в socket.connect () в соответствии с Windows Task Manager - PullRequest
1 голос
/ 14 февраля 2012

После выполнения:

from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.connect(('www.example.com', 80))

Количество потоков, как сообщает диспетчер задач Windows, увеличивается с 1 до 4. Моя версия Python - Python 2.7.2 (по умолчанию, 12 июня 2011, 15:08: 59) [MSC v.1500 32 бит (Intel)] на win32.

Я отслеживаю более крупную ошибку, которая приводит к зависанию простого метода lower () с примитивными параметрами, и обнаружил это.

Я изучил файл Python для socket.py, и он не содержит ссылок на потоковый модуль.Я также пролистал соответствующие исходные файлы на языке Си и до сих пор не понимаю, как это происходит.

Похоже, что нерест не происходит до успешного соединения.Нерест не происходит, если вместо имени домена передается IP-адрес.Возникновение происходит, если ('127.0.0.1', some_port) передается в качестве целевого адреса - но с одним дополнительным потоком вместо 3.

Почему это так, что потоки создаются в простом socket.connect()?Это нормально?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...