如何在Python中正确关闭线程

时间:2014-10-12 11:02:29

标签: python multithreading

我无法理解Python中的线程。我有这个程序:

import _thread, time

def print_loop():
    num = 0
    while 1:
        num = num + 1
        print(num)
        time.sleep(1)

_thread.start_new_thread(print_loop, ())

time.sleep(10)

我的问题是我是否需要关闭线程print_loop,因为它看起来两个线程在主线程结束时结束。这是处理线程的正确方法吗?

1 个答案:

答案 0 :(得分:4)

首先,除非绝对必须,否则请避免使用低级API。 threading模块优先于_thread。通常在Python中,避免以下划线开头的任何内容。

现在,您要查找的方法称为join。即。

import time
from threading import Thread

stop = False

def print_loop():
    num = 0
    while not stop:
        num = num + 1
        print(num)
        time.sleep(1)

thread = Thread(target=print_loop)
thread.start()

time.sleep(10)

stop = True
thread.join()