加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

一篇文章读懂 Python 多线程

发布时间:2019-09-25 01:31:04 所属栏目:建站 来源:编程派
导读:Threading模块从 Python 1.5.2 版开始呈现,用于加强底层的多线程模块thread。Threading 模块让操纵多线程变得更简朴,而且支持措施同时运行多个操纵。 留意,Python 中的多线程最好用于处理赏罚有关 I/O 的操纵,如从网上下载资源可能从当地读取文件可能目次

让我们掰开揉碎说明一下。起首,我们有一个建设者(creator)函数(亦称作出产者(producer)),我们用它来建假想要操纵(可能斲丧)的数据。然后用其它一个函数 my_consumer来处理赏罚适才建设出来的数据。Creator 函数行使 Queue 的put要领向行列中插入数据,斲丧者将会一连不绝的检测有没有更多的数据,当发明稀有据时就会处理赏罚数据。Queue 工具处理赏罚全部的获取锁和开释锁的进程,这些不消我们太体谅。

在这个例子中,先建设一个列表,然后建设两个线程,一个用作出产者,一个作为斲丧者。你会发明,我们给两个线程都转达了 Queue 工具,这两个线程潜匿了关于锁处理赏罚的细节。行列实现了数据从第一个线程到第二个线程的转达。当第一个线程把数据放入行列时,同时也转达一个 Event 变乱,紧接着挂起本身,守候该变乱竣事。在斲丧者侧,也就是第二个线程,则做数据处理赏罚事变。当完成数据处理赏罚后就会挪用 Event 变乱的 set要领,关照第一个线程已经把数据处理赏罚完毕了,可以继承出产了。

最后一行代码挪用了 Queue 工具的 join要领,它会奉告 Queue 守候全部线程竣事。当第一个线程把全部数据都放到行列中,它也就运行竣事了。

竣事语

以上涵盖了关于线程的诸多方面,首要包罗:

  • 线程基本常识
  • 锁的事变方法
  • 什么是变乱以及怎样行使
  • 怎样行使按时器
  • 通过 Queues/Events 实现线程间通讯

此刻你们知道怎样行使线程以及线程善于什么了,但愿在你们的代码中能有它们的用武之地。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读