История изменений
Исправление tailgunner, (текущая версия) :
Семафоры, мютексы, даже условные переменные - это всё говно. Только пчелы^Wканалы в духе CSP рулят. Или, на крайний случай, очереди (да, я знаю, что там внутри мютексы). Т.е. в псевдокоде:
def task1(q):
# чотоделаем
q.send(msg)
def task2(q):
# чотоделаем
q.send(msg)
def task3(q1, q2):
msg1, msg2 = q1.recv(), q2.recv()
# чотоделаем
q1, q2 = Queue(), Queue()
spawn(task1, (q1,))
spawn(task2, (q2,))
spawn(task3, (q1, q2))
Исходная версия tailgunner, :
Семафоры, мютексы, даже условные переменные - это всё говно. Только пчелы^Wканалы в духе CSP рулят. Или, на крайний случай, очереди (да, я знаю, что там внутри мютексы). Т.е. в псевдокоде:
def task1(q):
# чотоделаем
q.send(msg)
def task2(q):
# чотоделаем
q.send(msg)
def task3(q1, q2):
msg1, msg2 = q1.recv(), q2.recv()
# чотоделаем
q1, q2 = Queue(), Queue()
spawn(task1, (q1,))
spawn(task2, (q2))
spawn(task3, (q1, q2))