zoukankan      html  css  js  c++  java
  • 信号量

    信号量用来控制线程并发数的,BoundedSemaphore或Semaphore管理一个内置的计数 器,每当调用acquire()时-1,调用release()时+1。

          计数器不能小于0,当计数器为 0时,acquire()将阻塞线程至同步锁定状态,直到其他线程调用release()。(类似于停车位的概念)

          BoundedSemaphore与Semaphore的唯一区别在于前者将在调用release()时检查计数 器的值是否超过了计数器的初始值,如果超过了将抛出一个异常。

    复制代码
    import threading,time
    class myThread(threading.Thread):
        def run(self):
            if semaphore.acquire():  
                print(self.name)
                time.sleep(5)
                semaphore.release()
    if __name__=="__main__":
        semaphore=threading.Semaphore(5)   #5为控制线程数控
        thrs=[]
        for i in range(100):
            thrs.append(myThread())
        for t in thrs:
            t.start()

    #100个线程,每次只运行5个线程,等5个线程结束了;在接着运行5个线程
  • 相关阅读:
    viewport
    Flex 布局教程
    鼠标放上去盒子向上滑动
    鼠标放图片上,原图上划上去一个透明图片
    类加载过程
    JVM入门
    redis简介和安装
    JMH和Disruport
    线程池
    JUC
  • 原文地址:https://www.cnblogs.com/ajaxa/p/9122548.html
Copyright © 2011-2022 走看看