leetcode刷题大全

异步线程启动

   Semaphore是一种在多线程环境下使用的设施,该设施负责协调各个线程,以保证它们能够正确、合理的使用公共资源的设施,也是操作系统中用于控制进程同步互斥的量。Semaphore是一种计数信号量,用于管理一组资源,内部是基于AQS的共享模式。它相当于给线程规定一个量从而控制允许活动的线程数。
   Semaphore(int s):构造方法,创建具有给定许可数的计数信号量并设置为非公平信号量。
   Semaphore(int s,boolean fair):构造方法,当fair为true时,创建具有给定许可数的计数信号量并设置为公平信号量。
   void acquire():获取一个许可前线程将一直阻塞,相当于占了一个车位。
   void acquire(int n):获取许可前线程将一直阻塞,相当于占了n个车位。
   void release():释放一个许可,将其返回给信号量。

代码

from threading import *
class Foo:
def init(self):
self.s1=Semaphore(1)
self.s2=Semaphore(0)
self.s3=Semaphore(0)

def first(self, printFirst: 'Callable[[], None]') -> None:
    
    # printFirst() outputs "first". Do not change or remove this line.
    self.s1.acquire()
    printFirst()
    self.s2.release()

def second(self, printSecond: 'Callable[[], None]') -> None:
    # printSecond() outputs "second". Do not change or remove this line.
    self.s2.acquire()
    printSecond()
    self.s3.release()
    
def third(self, printThird: 'Callable[[], None]') -> None:
    # printThird() outputs "third". Do not change or remove this line.
    self.s3.acquire()
    printThird()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值