Python---创建多线程的方式

来源:互联网 发布:win7最大优化 编辑:程序博客网 时间:2024/06/05 11:50

1.使用_thread模块创建线程(Python 2 里面的thread) (不推荐使用)

def loop():     sleep(2)_thread.start_new_thread(loop, ())

2.使用threading模块 (推荐使用)

1). 创建Thread实例,传给它一个函数

def loop(sec):     sleep(sec)t = threading.Thread(target=loop, args=(5,)  # 创建线程t.start()     # 启动线程t.join()       # 等待线程执行结束

2).创建Thread实例,传给它一个可调用的类实例

class ThreadFunc(object):    def __init__(self, func, args, name=''):         self.name = name         self.func = func         self.args = args     def __call__(self):          self.func(*self.args)def loop(sec):     sleep(sec)t = threading.Thread(target=ThreadFunc(loop, (5, ), loop.__name__)) # 创建线程t.star()t.join()

3)派生Thread子类,并创建子类的实例

class MyThread(threading.Thread):    def __init__(self, func, args, name=''):        threading.Thread.__init__(self)        self.name = name        self.func = func        self.args = args    def run(self):        self.func(*self.args)def loop(sec):     sleep(sec)t = MyThread(loop, (5,), loop.__name__)  # 创建线程t.star()t.join()
ps:# thread 模块不支持守护线程,当主线程退出时,所有子线程都将终止,不管他们是否仍在工作。# threading 模块支持守护线程,在启动线程之前执行 thread.daemon = True。当主线程将在所有非守护线程退出之后才退出。# 守护线程:如果把一个线程设置为守护线程,就表示这个线程是不重要的,主进程退出时不需要等待这个线程执行结束。
原创粉丝点击