线程(Thread)特点:
线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位; 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线; 拥有自己独立的栈和共享的堆,共享堆,不共享栈,标准线程由操作系统调度; 调度和切换:线程上下文切换比进程上下文切换要快得多。
线程的创建方式
Python的标准库提供了两个模块:_thread和threading,_thread是低级模块,threading是高级模块,对_thread进行了封装。绝大多数情况下,我们只需要使用threading这个高级模块。
线程的创建可以通过分为两种方式:
1. 方法包装
2. 类包装
线程的执行统一通过start()方法
线程的创建方式(方法包装)
#方法方式创建线程 from threading import Thread from time import sleep def func1(name): for i in range(3): print(f"thread:{name} :{i}") sleep(1) if __name__ == '__main__': print("主线程,start") #创建线程 t1 = Thread(target=func1,args=("t1",)) t2 = Thread(target=func1,args=("t2",)) #启动线程 t1.start() t2.start() print("主线程,end")
线程的创建方式(类包装)
#类的方式创建线程 from threading import Thread from time import sleep class MyThread(Thread): def __init__(self,name): Thread.__init__(self) self.name =name def run(self): for i in range(3): print(f"thread:{self.name} :{i}") sleep(1) if __name__ == '__main__': print("主线程,start") #创建线程(类的方式) t1 = MyThread('t1') t2 = MyThread('t2') #启动线程 t1.start() t2.start() print("主线程,end")