zoukankan      html  css  js  c++  java
  • python threading之信号量

    信号量用来控制线程并发数的,BoundedSemaphore或Semaphore管理一个内置的计数器,
    每当调用acquire()时-1,调用release()时+1。
    计数器不能小于0,当计数器为 0时,acquire()将阻塞线程至同步锁定状态,
    直到其他线程调用release()。(类似于停车位的概念)
    BoundedSemaphore与Semaphore的唯一区别在于前者将在调用release()时检查计数器的值是否超过了计数器的初始值,
    如果超过了将抛出一个异常。
    import threading,time
    class mythreading(threading.Thread):
        def run(self):
                semaphore.acquire()
                print(self.name+'
    ')
                time.sleep(3)
                semaphore.release()
    if __name__=='__main__':
        semaphore=threading.Semaphore(5)
        lst=[]
        for i in range(23):
            lst.append(mythreading())
        for i in lst:
            i.start()   #start方法执行父类的run方法
    
    #存在输出的时候有时不会换行的现象没解决!
    写出漂亮的博客就是为了以后看着更方便的。
  • 相关阅读:
    everything is nothing
    基础算法
    OC 优化目录
    iOS 更改启动视图
    单例--iOS
    OC-Objection 学习笔记之一:简单的开始
    iOS 类库列表
    IOS 上线问题
    OC强弱引用的使用规则
    设置桌面图标
  • 原文地址:https://www.cnblogs.com/zhaowei5/p/9313660.html
Copyright © 2011-2022 走看看