#python #multithreading
#python #многопоточность
Вопрос:
Есть ли способ отправить список функций python в поток?
В настоящее время у меня есть что-то вроде этого:
t = threading.Thread (target = lambda q, arg1: q.put (authTestFunction (args.username, args.password, args.ip, args.secret, args.timeout)), args = (queu,))
но мне нужно отправить список функций, которые должны выполняться в одном потоке, и так далее, что-то вроде этого:
t = threading.Thread (target = lambda q, arg1: q.put (authTestFunction (args.username, args.password, args.ip, args.secret, args.timeout), authTestFunction (args.username, args.password, args.ip, args.secret, args.timeout), authTestFunction (args.username, args.password, args.ip, args.secret, args.timeout)), args = (queu,))
Комментарии:
1. Вы ожидаете, что поток будет выполнять функции одну за другой? Если да, то почему бы просто не отправить функцию / лямбда, которая фактически вызывает их одну за другой?
2. Мне нужно выполнить в потоке 100 функций, например, чтобы иметь возможность, например, 5 потоков со 100 функциями и так далее, и мне нужно, чтобы они были параллельными
3. Вы смотрели на все at
multiprocessing
и класс пула? До сих пор неясно, ожидаете ли вы, что ваша функция 100 каким-то образом будет распараллелена — потоки не являются волшебными, и они даже на самом деле не параллельны, для этого вам понадобятся процессы. Кроме того, приведенный вами пример, похоже, предполагает, что функция, которую вы хотите обработать, довольно тривиальна (операция аутентификации)?