zoukankan      html  css  js  c++  java
  • Python Semaphore

    • Semaphore信号量的使用
    信号量:
      互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去。
     
    使用场景:
      mysql连接池,线程池。可以在同一时刻放入多少线程。
     
    Semaphore模板:
    import threading,time
    def run(n):
        # 获取一坨信号量
        semaphore.acquire()
        time.sleep(1)
        print("run the thread: %s
    " %n)
        # 释放信号量
        semaphore.release()
    
    if __name__ == '__main__':
    
        # 声明信号量实例
        # 最多允许5个线程同时运行
        semaphore = threading.BoundedSemaphore(5)
        for i in range(20):
            t = threading.Thread(target=run,args=(i,))
            t.start()
    # 1个线程以上就成立
    while threading.active_count() != 1:
        pass
    else:
        print('----all threads done---')
  • 相关阅读:
    CF981D
    CF883H
    Hdu 5884
    全排列
    二叉搜索树实现
    my.ini配置详解
    主元素问题
    排序算法(还需补充)
    迷宫问题(DFS,BFS)
    算法导论4--求最大和数组
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/8178827.html
Copyright © 2011-2022 走看看