Im пытается понять потоки (им новые для него), чтобы получить мой код лучше. На данный момент у меня есть класс в файле .py с некоторыми функциями.Проблемы с потоком Python
В принципе, я инициализирую объект для этого класса в каждой программе, которую у меня есть. Но, с потоками, я хотел бы иметь возможность создавать все эти объекты в одной программе и вызывать функцию с помощью потока.
def inicializa():
clientList = list()
thread_list = list()
config = configparser.ConfigParser()
config.read("accounts.ini")
for section in config.sections(): #define a section da conta que vou usar
email = config.get(section,'email')
password = config.get(section,'password')
the_hash = config.get(section,'hash')
authdata = config.get(section,'authdata')
authdata = eval(authdata)
client = MyClient(email,password,the_hash,authdata)
clientList.append(client)
for client in clientList:
t = threading.Thread(target=client.getBla()) # this function is inside of my class, its work OK outside of the thread if i put client.getBla.
thread_list.append(t)
for thread in thread_list:
thread.start()
return clientList
ошибка я получаю, когда я пытаюсь использовать нить, чтобы запустить функцию client.getBla является:
Исключение в потоке Тема-1: TypeError: INT объект не отозваны.
Моя функция dosnt принимает любые аргументы, поэтому я не знаю, что происходит, потому что i client.getBla() вне потоков работает нормально.
Спасибо всем.
Вау, это было довольно быстрый ответ, я думаю, это сработало. Как я уже сказал, это мой первый раз с потоками, есть ли способ проверить, работают ли потоки одновременно, а не как «для»? –
@JeffersonNeves - надежный способ сделать это, чтобы заблокировать поток, используя, например, 'time.sleep()'. Если вы выполняете спящие 1 секунду в 5 разных потоках, программа должна закончиться через 1 секунду, а не 5. – goncalopp
не уверен, где использовать time.sleep(), но я попробую. Я опубликую результат в ближайшее время. Спасибо. –