且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

python多线程之semaphore(信号量)

更新时间:2022-08-21 22:26:25

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import threading 
import time
import random

semaphore = threading.Semaphore(0)

def consumer():
    print("consumer is waiting.")
    semaphore.acquire()
    print("Consumer notify: consumed item number %s." % item)

def producer():
    global item
    time.sleep(10)
    item = random.randint(1, 1000)
    print("producer nofity: produced item number %s." % item)
    semaphore.release()  



if __name__ == "__main__":

    for i in range(0, 5):
        t1 = threading.Thread(target=producer)
        t2 = threading.Thread(target=consumer)
        t1.start()
        t2.start()
        t1.join()
        t2.join()
    print("program teminated.")

python多线程之semaphore(信号量)