zoukankan      html  css  js  c++  java
  • 创建线程类threading.py

    import threading
    from time import sleep,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):
    self.func(*self.args)

    def super_play(file_,time):
    for i in range(2):
    print("Start playing: %s! %s" %(file_,ctime()))
    sleep(time)

    lists = {"爱情买卖.mp3":3,"阿凡达.mp4":5,"我和你.mp3":4}

    threads = []
    files = range(len(lists))

    for file_,time in lists.items():
    t = MyThread(super_play,(file_,time),super_play.__name__)
    threads.append(t)

    if __name__ == '__main__':
    #启动进程:
    for i in files:
    threads[i].start()
    for i in files:
    threads[i].join()
    print("end:%s" %ctime())

    """
    创建MyThread类,用于继承threading.Thread类。
    __init__类的初始化方法对func、args、name等参数进行初始化。
    在Python2中,apply(func[,args[,kwargs]])函数的作用是当函数参数已经存在于一个元组或字典中时,apply0间接地调用函数。args是一个包含将要提供给函数的按位置传递的参数的元组。如果省略了args,则任何参数都不会被传递,kwargs是一个包含关键字参数的字典。
    Python3中已经不再支持apply()函数,
    所以将apply(self.func,self.args)
    修改为
    self.func(*self.args)
    最后,线程的创建与启动与前面的例子相同,唯一的区别是创建线程使用的是MyThread类,线程的入参形式也有所改变。
    """
  • 相关阅读:
    github用起来-pycharm中玩好github
    docker使用阿里云镜像报错
    林子大了什么鸟都有
    CentOS7部署docker
    虚拟机无法上网问题
    Centos7安装图形化界面
    分享一款非常棒的数据库文档生成工具,可导出md、excel等格式
    Java常见知识积累
    MySQL必知必会详细总结
    你真的会学习吗?从结构化思维说起
  • 原文地址:https://www.cnblogs.com/zhang-da/p/12210542.html
Copyright © 2011-2022 走看看