zoukankan      html  css  js  c++  java
  • 多线程-threading模块

    #coding:utf-8
    import threading
    from time import sleep,ctime
    
    #音乐播放器
    def music(func):
        for i in range(2):
            print('I was listening to %s! %s' %(func,ctime()))
            sleep(2)
    
    
    #视频播放器
    def move(func):
        for i in range(2):
            print('I was at the %s! %s' %(func,ctime()))
            sleep(5)
    
    
    #创建线程数组
    threads = []
    
    #创建线程t1,并添加到线程数组
    t1 = threading.Thread(target=music,args=(u'爱情买卖',))
    threads.append(t1)
    
    
    #创建线程t2,并添加到线程数组
    t2 = threading.Thread(target=move,args=(u'阿凡达',))
    threads.append(t2)
    
    
    if __name__ == "__main__":
        #启动线程
        for i in threads:
            i.start()
    
        #守护线程
        for i in threads:
            i.join()
    
        print('all end: %s' %ctime())

    运行结果:

    I was listening to 爱情买卖! Thu Oct 18 09:30:37 2018
    I was at the 阿凡达! Thu Oct 18 09:30:37 2018
    I was listening to 爱情买卖! Thu Oct 18 09:30:39 2018
    I was at the 阿凡达! Thu Oct 18 09:30:42 2018
    all end: Thu Oct 18 09:30:47 2018

    说明:

    import threading 引入线程模块。

    threads = [] 创建线程数组,用于装载线程。
     
     
    threading.Thread()通过调用 threading 模块的 Thread()方法来创建线程。
     
     
    start() 开始线程活动。

    join() 等待线程终止。

    通过 for 循环遍历 thread 数组中所装载的线程;然后通过 start()函数启动每一个线程。

    join()会等到线程结束,或者在给了 timeout 参数的时候,等到超时为止。join()的另一个比较重 要的方面是它可以完全不用调用。一旦线程启动后,就会一直运行,直到线程的函数结束,退出为止。

  • 相关阅读:
    jsoup使用选择器语法来查找元素
    获取MD5值
    MD5
    反射机制的实现代码
    struts
    spring
    Hibernate
    商品信息录入
    extjs
    EasyUI
  • 原文地址:https://www.cnblogs.com/yrxns/p/9808821.html
Copyright © 2011-2022 走看看