多线程:程序运行的状态,每个进程都有独立的空间、内存、堆栈。
多进程:一个进程可以有多个线程,共享数据,这就导致了资源互斥的问题
Python全局解释器锁(GIL)
Python所有的代码执行是由Python虚拟机完成的,主程序中只有一个进程
thread是Python的一个包
一般用threading 方法:
t = threading.Thread(target= loop1(),args = ("lxm")) t.start() t.join(3)
deamon:守护线程,一般情况下,如果子线程在主线程结束时自动退出,但能否有效跟环境有关
t.daemon= True
线程常用属性
threading.current_thread() 返回当前线程变量 threading.currentThread() threading.enumerate() threading.activeCount() 还活着的线程数量 t.setName() 给线程取名字 t.getName()晓得线程的名字
直接继承与threading.Thread
直接继承Thread
重写run
实例可以直接运行
class MyThread(threading.Thread): def __init__(self,arg): super(MyThread,self).__init__() self.arg = arg def run(self): time.sleep(2) print("{0}".format(self.arg)) for i in range(5): t = MyThread(i) t.start() t.join()