「这是我参与11月更文挑战的第27天,活动详情查看:2021最后一次更文挑战」
正式的Python专栏第48篇,同学站住,别错过这个从0开始的文章!
前面分享了threading.Event类,它维持了一个信号(True/False)状态。
像田径跑道上蹲在起点的运动员,不分先后,同时听到枪响就开跑,用这个类来做很适合。
模拟:发出一声枪响
当然不是真的有枪响,而且代码调用Event类的对象实例的set函数。
因为Event类的函数是线程安全的,所以我们可以把运动员看成一个一个的线程,并排在跑道起点。
所以这个思路代码就有了
1 | python复制代码for _ in range(n): |
稍微写好一点,代码最终如下:
1 | python复制代码#!/usr/bin/env python |
这是运行结果:
多线程还有点意思
看看上面的代码,学委还模拟了3/2/1倒数,再开枪。
如图所示,多个线程都听到这个枪响不约而同的喊出了‘go’,最后不同时间达到终点了。
编程还是挺好玩的。 喜欢Python的朋友,请关注学委的 Python基础专栏 or Python入门到精通大专栏
持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
欢迎关注微信,点赞支持收藏!
本文转载自: 掘金