python 函数重写_python笔记5-多线程threading之封装式

这篇博客介绍了如何使用Python的threading模块创建线程,模拟多人同时吃火锅的场景。通过重写Thread类的__init__和run方法,启动线程并控制线程活动。文中提到了start()方法用于启动线程,run()方法定义线程行为,以及join()、isAlive()等方法的使用。最后,文章指出在实际运行中可能出现主线程退出而子线程仍在运行的问题,暗示了守护线程的概念。
摘要由CSDN通过智能技术生成


前言丨

寒冷的冬天,小虫子最喜欢和好朋友们一起吃火锅了,那么像这种多人同时吃火锅的场景如何用python实现呢?

前景提示:threading.Thread类中的方法

run(): 用以表示线程活动的方法。

start():启动线程活动。

join([time]): 当前线程等待Thread对象对应的线程中止。

如thread_a.join()表示将阻塞当前线程直至thread_a线程被调用中止/正常退出/抛出异常/超时。

isAlive(): 返回线程是否活动的。

getName(): 返回线程名。

setName(): 设置线程名。

exit():线程的结束一般依靠线程函数的自然结束;也可以在线程函数中调用thread.exit(),他抛出SystemExit exception,达到退出线程的目的。


执行函数

先写一个执行函数,用来实现做某件事情,不同的人吃火锅用一个参数people代替。

f24793364f8fe7d0240a141f422da06a.png

重写threading.Thread

使用Threading模块创建线程,直接从threading.Thread继承,然后重写__init__方法和run方法

d5b5eadbc63ee4953391811795401d44.png
a8d5ccdd1fea46f9bb12968700dc8c36.png

start和run区别

1.start()方法 开始线程活动。

对每一个线程对象来说它只能被调用一次,它安排对象在一个另外的单独线程中调用run()方法(而非当前所处线程)。

当该方法在同一个线程对象中被调用超过一次时,会引入RuntimeError(运行时错误)。

2.run()方法 代表了线程活动的方法。

你可以在子类中重写此方法。

标准run()方法调用了传递给对象的构造函数的可调对象作为目标参数,如果有这样的参数的话,顺序和关键字参数分别从args和kargs取得

参考代码

e39155529ea23754c4e3879c3bc59e09.png

运营结果:

ed251e0841b9d08550fb7d8cdc5b57fa.png

备注:这里运行结果会出现一个问题:主线程已经退出了,子线程Thread-1和Thread-2还在跑。

这就是后面需要讲的守护线程的内容!


以上是python笔记5全部内容,如果觉得对你有帮助,就点击“收藏”吧!

如果还有疑问的地方,欢迎评论留言给我们~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值