14. Гармонически взаимодействующие процессы
Статью с таким названием написал Дейкстра, чтобы облегчить жизнь программистам.
По его мнению «Гармоническое взаимодействие» - это когда процессы:
- 
    
либо не взаимодействуют
 - 
    
либо взаимодействуют в строго определенных точках кода программ
 
Эта концепция состоит в следующем:
- 
    
Каждый процесс представляет собой независимый программный модуль, для которого создается иллюзия чисто последовательного исполнения.
 - 
    
Процессы не имеют разделяемых данных.
 - 
    
Все обмены данными, и вообще взаимодействие, происходят в выделенных точках процессов. В этих точках процесс, передающий данные, останавливается и ждет, пока его партнер будет готов эти данные принять. Аналогично, процесс, принимающий данные, ожидает, пока ему передадут данные.
 - 
    
Синхронизация, не сопровождающаяся передачей данных, просто лишена смысла - процессы, не имеющие разделяемых структур данных, совершенно независимы.
 
Концепция гармонически взаимодействующих процессов очень привлекательна с теоретической точки зрения и позволяет легко писать правильные программы. Однако часто по соображениям производительности оказывается невозможно отказаться от разделяемой памяти.