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

     

  • 相关阅读:
    Redis的探究
    白话插件框架原理
    Jquery文本框值改变事件兼容性
    HDU多校练习第一场4608——I_Number
    0-创建scott数据
    句柄和指针
    openssl编译(VC6.0)
    CrashRpt_v.1.4.2_vs2008_also_ok
    文件转换dll mingw
    qt windows分发工具使用(windoployqt)
  • 原文地址:https://www.cnblogs.com/karcylee/p/3527959.html
Copyright © 2011-2022 走看看