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()的另一个比较重 要的方面是它可以完全不用调用。一旦线程启动后,就会一直运行,直到线程的函数结束,退出为止。

  • 相关阅读:
    Swift2.0 中的String(二):基本操作
    Swift2.0 中的String(一):常用属性
    在Swift中的ASCII到字符转换的问题
    iOS NSData
    UVALive
    Flipping Game(枚举)
    POJ 1182 :食物链(并查集)
    Java数据结构系列之——栈(2):栈的链式存储结构及其操作
    testing and SQA_动态白盒測试
    POJ 2392 Space Elevator
  • 原文地址:https://www.cnblogs.com/yrxns/p/9808821.html
Copyright © 2011-2022 走看看