Python中线程的创建方法:派生Thread子类
来源:互联网 发布:使命召唤4 mac 下载 编辑:程序博客网 时间:2024/05/29 15:51
在看这个之前,我应该假设你对类已经很熟悉了。
什么是超类,子类?怎么派生子类?子类的继承,子类对于超类方法的添加或是重载。这些如果很熟悉,就能看懂了,如果不是很熟悉,你可以去看看《Python学习手册》,它的第六部分关于类介绍的很仔细,阅读即可。
那么接下来就来讲这种创建线程的方式——派生Thread子类,并创建子类的实例
#-*- coding: UTF-8 -*-import threadingimport timedef loop(num): print('the start time is %s'%time.ctime()) time.sleep(num) print('the end time is %s'%time.ctime())class Mythread(threading.Thread): def __init__(self,func,args,name): threading.Thread.__init__(self) self.func=func self.args=args self.name=name def run(self): #这里是将threading.Thread中的run方法进行了重载 self.func(self.args)def main(): t=Mythread(loop,4,loop.__name__) f=Mythread(loop,5,loop.__name__) t.start() #解释:这里的start可以说是调用run的方法 f.start() t.join() f.join()if __name__=='__main__': main()
接下来用假如一点东西来验证我上面的两个解释
接下来我们来验证(start)方法是调用run方法这一说法
我们假设threading.Thread中的start方法的定义方式为
def start(self): self.run()
我们会在接下来的代码中将start方法进行扩展
```#-*- coding: UTF-8 -*-import threadingimport timedef loop(num): print('the start time is %s'%time.ctime()) time.sleep(num) print('the end time is %s'%time.ctime())class Mythread(threading.Thread): def __init__(self,func,args,name): threading.Thread.__init__(self) self.func=func self.args=args self.name=name def run(self): #这里是将threading.Thread中的run方法进行了重载 self.func(self.args) def printff(self): print(self.args) def start(self): #为了更好的理解,你可以先将**threading.Thread.start(self)**这一句删除进行测试 threading.Thread.start(self) self.printff()def main(): t=Mythread(loop,4,loop.__name__) f=Mythread(loop,5,loop.__name__) t.start() #解释:这里的start可以说是调用run的方法 f.start() t.join() f.join()if __name__=='__main__': main()
你可以将以上两段代码复制粘贴到你的IDLE中,看看运行效果,我相信你会恍然大悟的
阅读全文
0 0
- Python中线程的创建方法:派生Thread子类
- App11_01_创建Thread类的子类来创建线程
- Python中子类的创建
- 创建线程的方法 Thread Runnable
- Java创建线程Thread的两个方法
- java线程之用Thread类创建线程的方法
- 在创建线程时,必须要建立一个Thread类的或其子类的实例
- JAVA中创建线程对象的两种方法:继承Thread和实现Runable
- python中thread线程运用
- 创建线程的方法一:继承Thread类
- [Java] Thread 创建线程的第二种方法
- 创建线程的第一种方法:继承Thread类
- 深入理解JAVA创建线程的方法Thread和Runnable
- Thread(线程的创建) 十八
- Python线程的两种创建方法
- python中子类调用父类的初始化方法
- python中子类调用父类的初始化方法
- Thread线程中start()和run()方法的区别
- 开始前端-----第五篇
- BZOJ1492: [NOI2007]货币兑换Cash 【dp + CDQ分治】
- 浅析extern“C”
- 自旋锁和互斥锁的区别
- c语言 简单数组的输出代码
- Python中线程的创建方法:派生Thread子类
- GOM Player Plus(高清视频播放器)官方破解版V2.3.21下载 | gom player plus
- LeetCode-448. Find All Numbers Disappeared in an Array
- 交大OJ 3002 去重归并排序
- 桶排字符串
- 类的内存分布或大小
- linux下的关机命令
- Cad二次开发(三)
- 处理类型