zoukankan      html  css  js  c++  java
  • Python多线程-信号量

    信号量就是一个线程中有多个线程

    # -*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    
    import threading
    import time
    
    semaphore = threading.BoundedSemaphore(5) #最多允许5个线程同时运行
    
    def Run_Thread(n):
        semaphore.acquire()
        time.sleep(1)
        print("Run %s thread" %n)
        semaphore.release()
    
    for i in range(24):
        t = threading.Thread(target=Run_Thread,args=(i,))
        t.start()
    
    while threading.active_count() != 1:
        pass
    else:
        print("---All Thread Have Done---")
    

     脚本运行的情况是5个线程同时运行,最后运行剩余的4个线程

    但不是按顺序规定的5个线程同时运行,而是先运行最前面的5个线程

    如果这5个线程中有先运行完的,后面的线程就不上去

    例如5个线程中先运行完3个线程,则后面的线程会补2个上去

  • 相关阅读:
    Docker
    Docker
    Docker
    Docker
    Docker
    Docker
    pandas——向已经存在的excel数据写入data
    python——利用UI选择路径
    python——装饰器的使用
    python——生成器(协程)gevent多任务
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8068369.html
Copyright © 2011-2022 走看看