zoukankan      html  css  js  c++  java
  • PYTHON——多线程:从Thread类继承

    从Thread类继承

      通过继承Thread来实现多线程可以提高对线程任务的个性化定制,具体实现如下:

    实例代码:

    # 从Thread类继承
    import threading
    from time import sleep,ctime
    
    # 线程类,从Thread类继承而来。
    class MyThread(threading.Thread):
        # 重写父类的构造方法,其中,func是线程函数,args是传入线程函数的参数,name是线程名称
        def __init__(self,func,args,name=''):
            # 使用super函数调用父类的构造方法,并传入相应的参数值。
            super().__init__(target = func,name=name,args=args)
    
        # 重写父类的run方法
        def run(self):
            self._target(*self._args)
    
    # 线程函数
    def fun(index,sec):
        print('开始执行{},时间:{}'.format(index,ctime()))
        # 休眠sec秒
        sleep(sec)
        print('执行完毕{},时间:{}'.format(index,ctime()))
    
    def fun2(a,b,c):
        print('2开始执行,时间:{}'.format(ctime()))
        # 休眠sec秒
        sleep(a+b+c)
        print(a+b+c)
        print('2执行完毕,时间:{}'.format(ctime()))
    
    def main():
        print('开始:',ctime())
        # 创建第一个线程,并制定线程名称为“线程1”
        thread1 = MyThread(fun,(10,4),'线程1')
        thread2 = MyThread(fun2,(4,6,2),'线程2')
        thread1.start()
        thread2.start()
        print(thread1.name)
        print(thread2.name)
        thread1.join()
        thread2.join()
        print('结束:',ctime())
    
    if __name__ == '__main__':
        main()

     实例代码2:(更简单些)

    class MyThread(threading.Thread):
        def __init__(self, num):
            threading.Thread.__init__(self)
            self.num = num
    
        def run(self):  # 定义每个线程要运行的函数,该函数执行完,该线程也就执行完。
            print("running on number:%s" % self.num)
            sleep(3)
    
    if __name__ == '__main__':
        t1 = MyThread(1)
        t2 = MyThread(2)
        t1.start()
        t2.start()
  • 相关阅读:
    最小堆
    HDU1022+栈
    POJ2318+几何+判点在四边形内
    HDU1003+最大连续子序列和+起始终止位置
    HDU1174+三维点到直线距离
    HDU4517
    Two Phase Commit (2PC) [转]
    分布式系统领域经典论文翻译集 [转]银河里的星星
    每个程序员都应该知道的8个LINUX命令 [转]
    Google File System解析 [转]
  • 原文地址:https://www.cnblogs.com/chenhaiming/p/9889989.html
Copyright © 2011-2022 走看看