11月2日信号量

发布时间 2023-11-02 16:01:42作者: songjunwan

目录

信号量

信息量最大的作用就是同一时间内可以有自定有多少进程或线程被执行,这个期间这些进程或线程结束了其它的进程或线程才能被执行。

现在我生成了十个线程然后我通过信号量的方式只让5个线程运行其它的线程等它们运行完了再运行。

代码如下

import threading
import time
from threading import Thread, Semaphore




def task():
    sm.acquire()
    print(f'{threading.current_thread().name}在执行')
    time.sleep(5)#这里让我让它睡眠5秒让这个信息量能更好的体现出来
    sm.release()


sm = Semaphore(5)
for i in range(10):
    t = Thread(target=task)
    t.start()

结果如下

信号量也是一个锁,但是这个锁是限制可以运行的线程或进程的数量。