2017-05-03 82 views
1

start_thread方法中启动的线程不会停止。为什么?为什么线程不停止?

import time 
import threading 

cont_running = True 

def start_thread(): 
    threading.Thread(target=run).start() 

def stop_thread(): 
    cont_running = False 

def run(): 
    while cont_running: 
     print 'Thread running : ' + str(cont_running) 
     time.sleep(0.2) 
    print 'Thread ended' 

start_thread() 
time.sleep(2) 
stop_thread() 

回答

4

stop_thread(),你的赋值语句创建一个名为cont_running一个局部变量。这个局部变量与同名的全局变量无关。

试试这个:

def stop_thread(): 
    global cont_running 
    cont_running = False