LINUX.ORG.RU

История изменений

Исправление 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))