位置: 编程技术 - 正文

Python多线程实现同步的四种方式(python多线程代码)

编辑:rootadmin

推荐整理分享Python多线程实现同步的四种方式(python多线程代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 的多线程,python 多线程,python多线程操作,python如何多线程,python多线程怎么用,python如何多线程,python 多线程,python多线程操作,内容如对您有帮助,希望把文章链接给更多的朋友!

临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能,因为不能多个线程同时操作,而访问这部分资源的代码通常称之为临界区。

锁机制

threading的Lock类,用该类的acquire函数进行加锁,用realease函数进行解锁

当一个线程调用锁的acquire()方法获得锁时,锁就进入“locked”状态。每次只有一个线程可以获得锁。如果此时另一个线程试图获得这个锁,该线程就会变为“blocked”状态,称为“同步阻塞”(参见多线程的基本概念)。

Python多线程实现同步的四种方式(python多线程代码)

直到拥有锁的线程调用锁的release()方法释放锁之后,锁进入“unlocked”状态。线程调度程序从处于同步阻塞状态的线程中选择一个来获得锁,并使得该线程进入运行(running)状态。

信号量

信号量也提供acquire方法和release方法,每当调用acquire方法的时候,如果内部计数器大于0,则将其减1,如果内部计数器等于0,则会阻塞该线程,知道有线程调用了release方法将内部计数器更新到大于1位置。

条件判断

所谓条件变量,即这种机制是在满足了特定的条件后,线程才可以访问相关的数据。

它使用Condition类来完成,由于它也可以像锁机制那样用,所以它也有acquire方法和release方法,而且它还有wait,notify,notifyAll方法。

同步队列

put方法和task_done方法,queue有一个未完成任务数量num,put依次num+1,task依次num-1.任务都完成时任务结束。

本文链接地址:https://www.jiuchutong.com/biancheng/375600.html 转载请保留说明!

上一篇:Python之Web框架Django项目搭建全过程(pythonweb框架有哪些)

下一篇:pycharm中连接mysql数据库的步骤详解(pycharm中连接MySQL数据库)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络