• python 多线程 笔记(一)


    #coding=utf-8
    import threading 
    from time import sleep, ctime 
     
    loops = [4,2] 
     
    def loop(nloop, nsec):
        print 'start loop', nloop, 'at:', ctime() 
        sleep(nsec) 
        print 'loop', nloop, 'done at:', ctime()
        
     
    def main():
        print 'starting at:', ctime()
        threads = []
        nloops = range(len(loops)) 
            
        #创建线程
        for i in nloops:
            t = threading.Thread(target=loop,args=(i,loops[i]))
            threads.append(t)
    
        #开始线程
        for i in nloops:
            threads[i].start()
    
        #等待所有结束线程
        for i in nloops:
            threads[i].join()
    
    
        print 'all end:', ctime() 
    
    if __name__ == '__main__': 
        main()

    start()

      开始线程活动

    join()

      等待线程终止

     

      所有的线程都创建了之后,再一起调用 start()函数启动,而不是创建一个启动一个。而且,不用再管理一堆锁(分配锁,获得锁,释放锁,检查锁的状态等),只要简单地对每个线程调用 join()函数就可以了。

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

     

  • 相关阅读:
    [转]学习B站动态转发抽奖脚本
    【LeetCode】236. 二叉树的最近公共祖先
    Java中邮件的发送
    最长递增子序列(LIS)
    最长公共子序列(LCS)
    【LeetCode】69. x 的平方根
    Lombok的使用
    Centos 中文乱码解决方法
    FWT,FST入门
    [UOJ310][UNR #2]黎明前的巧克力
  • 原文地址:https://www.cnblogs.com/karcylee/p/3527959.html
Copyright © 2020-2023  润新知