2016-12-09 3 views
1

Так что я хочу, чтобы сохранить свои темы в массиве, например:Невозможно добавить нить массив

threads = [] 

Для добавления темы в массив, создать их и добавить их:

t = thread.start_new_thread(process_client, (client, address)) 
threads.append(t) 

проблема происходит, когда я пытаюсь присоединиться к ним:

for thread in threads: 
    thread.join 

появляется следующее сообщение об ошибке:

'int' object has no attribute 'join' 

Я знаю, проблема в том, что при создании потока переменная t получит целое число, которое будет добавлено к массиву, установив его тип в целое. И когда я пытаюсь применить метод join() в целое число, я получаю сообщение об ошибке. У любого из вас, ребята, есть решение этой проблемы кастинга?

Я на Python 2.7 кстати

ответ

3

thread.start_new_thread возвращает идентификатор потока, а не сам протектора. Таким образом, вы фактически добавляете идентификаторы протектора, которые являются целыми числами.

Вы можете создать и запустить объект Thread (для этого вам нужно импортировать тему из резьб), то вы бы ссылку на него

Ex:

t = Thread(target=your_target, args=your_args) 
t.start() 
threads.append(t) 
+0

Тогда как я добавить нити ? Есть ли способ? Заранее спасибо – Goamaral

+0

Я отредактировал ответ с кодом скелета, который вы хотите сделать –

+0

О, спасибо. Я понимаю, что вы там делали, спасибо – Goamaral

Смежные вопросы