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方法
    
    #存在输出的时候有时不会换行的现象没解决!
    写出漂亮的博客就是为了以后看着更方便的。
  • 相关阅读:
    数论 UVA 10943
    数论 UVA 11889
    数论 UVA 11388
    UVA 572
    hdu 1016
    poj 1308
    poj 1363
    java web-----servelet
    java IO文件读写例子(OutputStream,InputStream,Writer,Reader)
    java web环境配置类型问题
  • 原文地址:https://www.cnblogs.com/zhaowei5/p/9313660.html
Copyright © 2011-2022 走看看