Запрограммируйте две руки, которые будут работать вечно и работать синхронно, собирая записи данных, а затем торопитесь сделать это за меньшее количество циклов.
Составьте списки инструкций для двух рук (A и B). Каждый цикл оба плеча выполняют одну инструкцию, а затем цикл. Read извлекает значения подачи в слоты скамьи, Grab берет одно в клешню, Комбинирует добавляет его к записи, а Output выдает готовую запись. Соблюдайте спецификацию, затем оптимизируйте.
Reactor Lines — это головоломка по оптимизации параллельного программирования, позволяющая координировать два параллельных цикла без конфликтов.
Два манипулятора, каждый из которых выполняет одну инструкцию за цикл, а затем повторяет, — это форма машины с передачей сообщений и та же территория, что исследует TIS-100: параллелизм без общей памяти.
Чтения переносят значения в ячейки стола, поэтому манипуляторы должны согласовать время, не имея возможности ни о чём друг друга спросить.
Достигать такого согласия конструкцией, а не переговорами, — вот что делает параллельное программирование трудным. Оба манипулятора по отдельности правильны; ошибка, когда она приходит, в том, что они правильны в один и тот же момент.
Reactor Lines — это оптимизационная головоломка параллельного программирования, посвященная координации двух параллельных циклов. Это оригинальная бесплатная браузерная игра, созданная специально для PlayPendium.