Я нахожусь в ситуации, когда мне нужно прекратить выполнение потока, когда он соответствует условию внутри текущего запущенного / выполняющегося потока:
Вот пример, который я имею в виду:
- У нас есть список из 5 чисел от 1 до 5.
- Мы ставим их в очередь и обрабатываем их вместе с 10 Номерами потоков в функции Run_Calc.
- в
Run_Calc
я хочу, чтобы мой поток остановилсяесли оно соответствует условию 3
import threading,queue
q = queue.Queue()
numbers = [1,2,3,4,5]
for each_num in numbers:
q.put(each_num)
def Run_Calc(no):
print("NO IS : {}".format(no))
if no == 3:
print("YES I WANT TO EXIT HERE and DONT WANT TO EXECUTE 4,5")
def ProcessThreading():
while not q.empty():
get_number = q.get()
Run_Calc(get_number)
th_list = []
for i in range(10):
t = threading.Thread(target=ProcessThreading)
th_list.append(t)
t.start()
for th in th_list:
th.join()
NO IS : 1
NO IS : 2
NO IS : 3
YES I WANT TO EXIT HERE and DONT WANT TO EXECUTE 4,5
NO IS : 4
NO IS : 5