您好,登錄后才能下訂單哦!
import threading
import logging
FORMAT = '%(threadName)s %(thread)d %(message)s'
logging.basicConfig(format=FORMAT, level=logging.INFO)
def worker(barrier:threading.Barrier):
logging.info("waiting for {} threading. ".format(barrier.n_waiting))
try:
barrier_id = barrier.wait()
logging.info('after barrier {}'.format(barrier_id)) # 顯示等待的barrier實例數量
except threading.BrokenBarrierError:
logging.info('Broken Barrier')
barrier = threading.Barrier(3)
for x in range(5):
threading.Event().wait(2)
threading.Thread(target=worker, name='worker-{}'.format(x), args=(barrier, )).start()
import threading
import logging
FORMAT = '%(threadName)s %(thread)d %(message)s'
logging.basicConfig(format=FORMAT, level=logging.INFO)
def worker(barrier:threading.Barrier):
logging.info('waitting for {} threads'.format(barrier.n_waiting))
try:
barrier_id = barrier.wait()
logging.info('after barrier {}'.format(barrier_id))
except threading.BrokenBarrierError:
logging.info('broken barrier')
barrier = threading.Barrier(3)
for i in range(0, 9):
if i == 2:
barrier.abort()
elif i == 6:
barrier.reset()
threading.Event().wait(2)
threading.Thread(target=worker, args=(barrier, )).start()
import threading
import logging
FORMAT = '%(threadName)s %(thread)d %(message)s'
logging.basicConfig(format=FORMAT, level=logging.INFO)
def worker(barrier:threading.Barrier, i:int):
logging.info('waitting for {} threads'.format(barrier.n_waiting))
try:
if i < 3:
barrier_id = barrier.wait(1) # 設定超時時間
else:
if i == 6:
barrier.reset() # 恢復屏障
barrier_id = barrier.wait()
logging.info('after barrier {}'.format(barrier_id))
except threading.BrokenBarrierError:
logging.info('broken barrier')
barrier = threading.Barrier(3)
for i in range(0, 9):
threading.Event().wait(2)
threading.Thread(target=worker, args=(barrier, i)).start()
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。