线程与进程
进程: 程序的一次执行,有自己的内存,地址空间,数据栈等,进程间不可共享数据。 线程: 一个进程下可以多个线程,线程间可共享数据。
虽然 Python 解释器中可以“运行” 多个线程,但在任意时刻,只有一个线程在解释器中运行。
Thread 与 Threading
Thread: 当主线程退出的时候,所有其它线程没有被清除 就退出了(不支持守护线程);
Threading: 能确保所有“重要的”子线程都退出后,进程才会结束。
守护线程: 如果你设定一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出。thread.setDaemon(True))
就表示这个线程“不重要.
从 Thread 派生出一个子类,创建一个这个子类的实例
关键代码
class MyThread(threading.Thread):
def __init__(self, func, args, name=''):
threading.Thread.__init__(self)
self.func = func
self.arga = args
def run(self):
apply(self.func, self.args) **线程常用函数:**
thread_list = []
for i in range(len(loops)):
t = MyThread(loop, (i, loops[i]))
thread_list.append(t)
for i in range(len(loops)):
thread_list[i].start()
for i in range(len(loops)):
thread_list[i].join()