Это не правильно. Ваша вторая попытка не лучше вообще. Бары будут создавать параллельные потоки, но поскольку вы присоединяетесь к ним немедленно, в первом случае это фактически не работает. Бар не будет достигнут, так как он ждет 3 жетона, куда может прибыть только один. Во втором случае он никогда не продолжится после объединения, так как он получает только один токен от действия Provides...
, но для продолжения необходимо 3.
Вот часть того, что вам нужно сделать:
Сначала существует узел слияния, чтобы захватывать токены, поступающие либо от действия сверху, либо от двух левых. После этого есть два решения, охраняемые слева. Можно продолжить до верха (ограждение [read next]
) или до низа (ограждение [acknowledge]
). Таким образом, пользователь может повторить чтение (или полностью его пропустить), пока не пройдет действие Acknowledge
. Последнему узлу слияния предшествует это действие.
Обратите внимание, что ограждения read/ack
должны появляться дважды для каждого потока, чтобы сделать его машиночитаемой моделью. Тексты здесь просто наложены, но человек все равно может это понять.