Форум сайта python.su
Добрый день, уважаемые форумчане. Во время создания многопоточного приложения (с использованием модуля threading) у меня возник вот какой вопрос (но сначала немного кода):
# Импортируем функцию run, # которую будем запускать в отдельном потоке from src.player import run # Модуль обеспечивающий многопоточность import threading # Создаем поток и запускаем его (здесь conn и bids # просто какие-то параметры не играющие роли). t = threading.Thread(target=run, args=(conn, bids)) t.start()
Отредактировано bav (Янв. 5, 2013 20:53:58)
Офлайн
Краткий ответ: не нужен.
Подробный ответ:
1. Если вы это можете проверить - в чём вопрос тогда? Запустите да посмотрите :)
2. В доках в разделе работы с потоками об этом ни слова - вероятно и думать об этом не нужно.
3. Если хочется докопаться до правды качаем сорцы питона, находим там код отвечающий за создание потока и видим(файл thread_pthread.h):
long
PyThread_start_new_thread(void (*func)(void *), void *arg)
{
...
status = pthread_create(&th,
#if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
&attrs,
#else
(pthread_attr_t*)NULL,
#endif
(void* (*)(void *))func,
(void *)arg
);
#if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
pthread_attr_destroy(&attrs);
#endif
if (status != 0)
return -1;
pthread_detach(th);
...
}
Офлайн
И снова все оказалось довольно просто. Спасибо большое, GaiverR за подробное объяснение
Офлайн