0
我與我的halt_listener
線程有問題。我可以開始import_1
,但它不會產生halt_listener
線程。我在已知的良好代碼之後對此進行了構造,唯一的區別是在最後一次迭代中,halt_listener得到了一個管道而不是一個隊列。Python線程無法啓動。
class test_imports:#Test classes remove
alive = {'import_1': True, 'import_2': True};
def halt_listener(self, control_Queue, thread_Name, kill_command):
while True:
print ("Checking queue for kill")
isAlive = control_queue.get()
print ("isAlive", isAlive)
if isAlive == kill_command:
print ("kill listener triggered")
self.alive[thread_Name] = False;
return
def import_1(self, control_Queue, thread_Number):
print ("Import_1 number %d started") % thread_Number
t = Thread(target=test_imports.halt_listener, args=(control_Queue, 'import_1', 't1kill'))
count = 0
global alive
run = test_imports.alive['import_1'];
while run:
print ("Thread type 1 number %d run count %d") % (thread_Number, count)
count = count + 1
print ("Test Import_1 ", run)
run = self.alive['import_1'];
print ("Killing thread type 1 number %d") % thread_Number
def import_2(self, control_queue, thread_number):
print ("Import_2 number %d started") % thread_number
count = 1
while True:
alive = control_queue.get()
count = count + 1
if alive == 't2kill':
print ("Killing thread type 2 number %d") % thread_number
return
else:
print ("Thread type 2 number %d run count %d") % (thread_number, count)
任何人都有任何指向我出錯的地方。
咄Durp!擡頭先生代碼仍然拋出類型錯誤,但她是正確的解決了該問題 –
't.start()'啓動線程,而不是't.run()'。 – Ringding
@Ringding是的,固定的。 brainfart。 – Amber