当前位置: 首页 > 后端技术 > Python

python中的线程、进程、协程

时间:2023-03-26 18:01:50 Python

threads在python中调用threading模块对线程进行封装。便于使用。多线程比单线程花费更少的时间。多线程使用并发操作。当start()被调用时,线程才会真正被创建并执行。一个进程中的所有线程共享全局变量,方便多个线程之间共享数据。但是当多个线程同时操作同一个全局变量时,会出现资源竞争问题,导致数据结果不正确。互斥线程可以引入互斥以确保对竞争资源的同步安全访问。当一个线程要更改共享数据时,它首先被锁定,其他线程将无法修改它。只有在线程释放资源后,其他线程才能再次锁定资源。互斥量是为了确保一次只有一个线程运行。保证了多线程数据的正确性。Lock类可以方便的处理加锁#Createlockmutex=threading.lock()#Lockmutex.acquire()#Releasemutex.release()死锁线程间共享多个资源时,如果两个线程各自占用了部分资源等待同时获取对方的资源,就会造成死锁。进程进程是操作系统分配资源的基本单位。进程一般通过多处理模块创建对象。一个进程一般至少有一个线程,线程不能独立执行,必须依赖于进程。线程的开销比较小,但是不利于资源的保护和管理。这个过程是相反的。协程迭代器迭代是一种访问集合元素的方式。迭代器是一种可以记住遍历位置的对象。迭代器对象从集合的第一个元素开始访问,直到访问完所有集合元素。迭代器只能前进不能后退。迭代器的核心功能是通过next()函数调用并返回下一个数据值。使用迭代器类Feibona()编写斐波那契数列:def__init__(self,n):self.n=nself.index=0self.num1=0self.num2=1def__next__(self):ifself.index