位置: IT常识 - 正文

Python中Thread子类如何封装(python子类init)

编辑:rootadmin

推荐整理分享Python中Thread子类如何封装(python子类init),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中的threading.thread,python子类init,python子类init,python thread类,python中thread函数,python thread类,python中的threading.thread,python thread类,内容如对您有帮助,希望把文章链接给更多的朋友!

Thread子类的封装

通过使用threading模块能完成多任务的程序开发,为了让每个线程的封装性更完美,所以使用threading模块时,往往会定义一个新的子类class,只要继承threading.Thread就可以了,然后重写run方法。

#coding=utf-8importthreadingimporttimeclassMyThread1(threading.Thread):defrun(self):foriinrange(3):time.sleep(1)msg="I'm"+self.name+'@'+str(i)#name属性中保存的是当前线程的名字print(msg)classMyThread2(threading.Thread):defrun(self):foriinrange(3):time.sleep(1)msg="I'm"+self.name+'@'+str(i)#name属性中保存的是当前线程的名字print(msg)if__name__=='__main__':t1=MyThread1()t2=MyThread2()t1.start()t2.start()

运行结果为:

说明:

python的threading.Thread类有一个run方法,用于定义线程的功能函数,可以在自己的线程类中覆盖该方法。

Python中Thread子类如何封装(python子类init)

创建自己的线程实例后,通过Thread类的start方法,可以启动该线程,当该线程获得执行的机会时,就会调用run方法执行线程。

相关推荐:《Python视频教程》

2. 线程的执行顺序

#coding=utf-8importthreadingimporttimeclassMyThread(threading.Thread):defrun(self):foriinrange(3):time.sleep(1)msg="I'm"+self.name+'@'+str(i)#name属性中保存的是当前线程的名字print(msg)deftest():foriinrange(1,5):t=MyThread()t.start()if__name__=='__main__':test()

运行结果为:

说明:

从代码和执行结果我们可以看出,多线程程序的执行顺序是不确定的。当执行到sleep语句时,线程将被阻塞(Blocked),到sleep结束后,线程进入就绪(Runnable)状态,等待调度。而线程调度将自行选择一个线程执行。上面的代码中只能保证每个线程都运行完整个run函数,但是线程的启动顺序、run函数中每次循环的执行顺序都不能确定。

总结:

每个线程一定会有一个名字,尽管上面的例子中没有指定线程对象的name,但是python会自动为线程指定一个名字。

当线程的run()方法结束时该线程完成。

无法控制线程调度程序,但可以通过别的方式来影响线程调度的方式。

线程的几种状态

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

上一篇:WordPress安全防护 你可以做这些事情(wordpress防盗链)

下一篇:dedecms织梦描述description长度限制修改方法(织梦栏目描述调用)

  • 钉钉如何扫码进群(钉钉如何扫码进群二维码)

  • 国家中小学网络云平台怎么注册(国家中小学网络云平台)

  • 微信如何设置密码锁(微信如何设置密码付款方式)

  • iphone听觉是什么功能(iphone的听觉是干什么的)

  • 蚂蚁森林互相浇水的意义(蚂蚁森林浇水共同好友能看到吗)

  • 外星人怎么调节灯光(外星人怎么调节风扇转速)

  • 华为周冬雨屏是什么意思(华为周冬雨屏多吗)

  • 20系显卡花屏(20系显卡花屏原因)

  • 手机电池寿命(手机电池寿命短了怎么办)

  • 宽带一直闪红灯网络也用不了(宽带一直闪红灯怎么办)

  • 台式电脑的摄像头在哪(台式电脑的摄像头和麦克风)

  • ipad pencil充电多久(apple pencil用ipad充电多久能充满)

  • b站举报人别人知道吗(b站举报人别人怎么成功)

  • 微信里的视频怎么删除(微信里的视频怎么发抖音)

  • ie如何设置书签式(ie浏览器的书签栏在哪里)

  • 照片合成用什么软件(照片合成用什么相机)

  • OPPO k5怎么设置智能接电话(oppok5怎么设置来电闪光灯)

  • 扣扣注销了还能恢复吗(扣扣注销了还能查到人吗)

  • 飞猪上怎么买儿童车票(飞猪怎么买儿童火车票)

  • 阿里巴巴保证金怎么退回(阿里巴巴保证金交90还是3000)

  • 苹果手机设置订阅服务在哪里(苹果手机设置订阅显示无法连接是怎么回事)

  • 抖音个人实名认证需要多久(抖音个人实名认证有什么好处和坏处)

  • 小程序开发类型有哪些(小程序开发方式)

  • Win10应用程序显示错误异常代码0xc0000417怎么解决?(win10显示所有应用)

  • vite + vue3 —— vue地图大屏项目(vite vuex)

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

    鄂ICP备2023003026号

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

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