zoukankan      html  css  js  c++  java
  • Python的多线程

    线程间的关系

    # -*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    
    import threading
    import time
    
    def MyThread(n):
        print("Running Thread",n)
        print(threading.current_thread()) #打印当前线程的类型
        time.sleep(2)
    
    for i in range(20):
        t = threading.Thread(target=MyThread,args=(i,))
        t.start()
    
    print("Running Main Threading",threading.current_thread())
    print(threading.active_count()) #计算线程数
    

     运行结果

    主线程和子线程同时执行,然后脚本执行Mythread函数里的time.sleep(2),运行停顿大概2秒

    线程数为当前主线程和子线程数之和

    def MyThread(n):
        print("Running Thread",n)
        print(threading.current_thread())
        time.sleep(2)
    
    for i in range(20):
        t = threading.Thread(target=MyThread,args=(i,))
        t.start()
    

     这段代码为主线程启动的子线程

    print("Running Main Threading",threading.current_thread())
    print(threading.active_count())
    

     这段代码为主线程执行的线程

    多线程的等待

    # -*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    
    import threading
    import time
    
    All_Thread = []
    
    def MyThread(n):
        print("Running %s Thread"%n)
        time.sleep(2)
    
    for i in range(20):
        t = threading.Thread(target=MyThread,args=(i,))
        t.start()
    
    print("Finished All Sub-thread")
    

     运行,查看结果

    该脚本同时执行主线程和子线程

    如果想先执行完子线程再执行主线程,可以使用join()

    # -*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    
    import threading
    import time
    
    All_Thread = []
    
    def MyThread(n):
        print("Running %s Thread"%n)
        time.sleep(2)
    
    for i in range(20):
        t = threading.Thread(target=MyThread,args=(i,))
        t.start()
        All_Thread.append(t)
    
    for t in All_Thread:
        t.join()
    
    print("Finished All Sub-thread")
    

     运行,查看结果

    先执行了子线程,然后停留了大概2秒,再执行了主线程

    线程号

    # -*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    
    import threading
    
    def MyThread():
        print(threading.get_ident())
    
    for i in range(10):
        t = threading.Thread(target=MyThread)
        t.start()
    

     运行结果

    打印出了这10个子线程的id号

  • 相关阅读:
    性能学习-了解前端性能测试
    Python变量类型说明
    Python 标识符说明
    极验验证码-判断需要移动的距离
    极验验证码-userresponse.js
    转载系列
    loadrunner java vuser
    java DES
    java AES
    极验验证码流程-4字段加密
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8030198.html
Copyright © 2011-2022 走看看