Python多线程时使用屏障对象

如果你仔细地看了我前面的文章,会发现多线程同步里,有已经介绍了锁和事件对象进行同步,接着下来介绍一个比较不一样的同步对象:屏障(threading.Barrier)。屏障对象在多线程同步中设置一道门,而这扇门有一把锁,需要一定数量的线程到达之后才可以解锁。如果先到的线程,就会等待,直到数量满足。这就好比组织一次旅游,所有游客到达大巴时才会开车出发,不会因为几个人先上车,就让大巴开走。所有人到达大巴的事件,就叫做屏障事件。

 

Barrier(parties, action=None, timeout=None)

每个线程通过调用wait()尝试通过障碍,并阻塞,直到阻塞的数量达到parties时,阻塞的线程被同时全部释放。

action是一个可调用对象,当线程被释放时,其中一个线程会首先调用action,之后再跑自己的代码。

timeout时默认的超时时间。

 

方法:

wait(timeout=None)

尝试通过障碍并阻塞。

返回值是一个在0到parties-1范围内的整数,每个线程都不同。

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值