码迷,mamicode.com
首页 > 编程语言 > 详细

四.并发编程 (线程信号量)

时间:2019-07-18 13:22:59      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:tpi   current   ==   维护   def   print   意思   rom   并发   

一 .线程信号量(Semaphore)

号量semaphore 可以控制同时运行执行的线程数量。
信号量semaphore内部维护了一个条件变量和一个计数器。
import threading,time

sem=threading.Semaphore(3)  # 控制线程的数量    意思三个三个线程走
def run():
 with sem:
   for i in range(10):
      print(threading.current_thread().name,i)
      time.sleep(2)

if __name__=="__main__":
    for i in range(5):
         threading.Thread(target=run).start()
from  threading import Thread,Semaphore
import time,os

def run(i,sem):
    for i in range(5):
      sem.acquire()   表示三个人拿到钥匙了方问
      print(os.getpid(),"哈哈哈哈哈哈")
      time.sleep(1)
      sem.release()      表示三个人用完钥匙还钥匙  (依次轮流)
sem=Semaphore(3)    # 表示控制线程在同一个时间内只能三个 ,三个线程访问
for i in range(10):
  p=Thread(target=run,args=(i,sem))
  p.start()

 

四.并发编程 (线程信号量)

标签:tpi   current   ==   维护   def   print   意思   rom   并发   

原文地址:https://www.cnblogs.com/Sup-to/p/11206566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!