【Python成长之路】来聊聊多线程的几位“辅助”
哈喽大家好,我是鹏哥。 今天想写写的内容是 —— 多线程的几位“辅助”英雄 。 ~~~上课铃~~~ Jiaye&<em>Tonylgy</em>-Astronomia(Remix)[DubstepVer.]- Astrornomia(DubstepVer.) 1 写在前面 最近新赛季上分好艰难,我的火都督都胜率连败,哎,要是有个优秀的辅助该有多好。 回到正题,之前我写过一篇多线程和多进程的文章: 【Python成长之路】python并发学习:多进程与多线程的用法及场景介绍 今天我再补充讲讲多线程的多位“辅助英雄”: 锁、信号量、事件。 2 多线程示例 在介绍几位多线程方法前,我们先回归下多线程的使用。 在不使用各类方法时,多线程代码的结果为: 运行时间为15S(5S为主函数等待时间,10S是子线程运行运行时间),即3个线程是同时运行的。 另外,从结果中,可以看到多线程之间是随机运行的,可以说是相当混乱。 缺点:当前多个子线程存在相互抢占资源,会出现同一秒内同时打印hello的情况;另外子线程之间是乱序的,没有先来后到。 注:不知道为什么,微信公众号里设置代码功能不生效,因此只能截图了 3 锁示例 针对多线程里的锁方法,其实是将第一个子线程在运行时,将其他线程进行上锁,不让他们运行。有点像游乐场里,小朋友们在玩滑梯时,工作人员将他们一个个排队分好,在其中一个小朋友在玩时