Алгоритм многоразового барьера без использования счетчика

Я пытаюсь реализовать алгоритм многоразового барьера из Маленькой книги семафоров, но без использования счетчика. Я думал о реализации, в которой я могу использовать 4 барьера, но я не могу найти способ узнать, например, когда все потоки прошли первые два барьера. Кроме того, я подумал о другой реализации с некоторыми логическими переменными:

def threadA():
  isOpenA = True
  barrierA.wait()
  isOpenA = False
  barrierA.signal()
  isOpenA = True
  while isOpenA == True:
    #hold threads here until each one arrives  
  #barrierB wait
  #signal barrierB

Есть ли способ реализовать многоразовый барьер без использования счетчика?


person Razvan    schedule 26.05.2021    source источник
comment
это или это ответить на ваш вопрос?   -  person Jérôme Richard    schedule 26.05.2021
comment
@JérômeRichard В моей реализации мне не разрешено использовать переменную счетчика для подсчета количества потоков, вошедших в первый барьер и соответственно вышедших из второго. Так что нет, ни одна из ссылок не дает ответа на мой вопрос.   -  person Razvan    schedule 26.05.2021