Выдержка из книги
Хоггер К.N.
Введение в логическое программирование
В тех ситуациях, когда программист не желает сам заботиться о координации вызовов и не предлагает интерпретатору никаких руководящих инструкций по этому поводу, общая переменная п вызовах может представлять некоторую проблему для разработчика реализации. С логической точки зрения вызовы р и q должны быть согласованы относительно присваивания переменной х какого-либо значения, и проблема состоит в том, чтобы достичь этого согласования операционно, сохраняя насколько возможно параллелизм исполнения программы. Для уменьшения указанных трудностей обычно используется компромиссный вариант: один из И-параллельных вызовов назначается производителем общей переменной, а все остальные - потребителями. Это делается, исходя из того, что, по всей вероятности, нет достаточных оснований, относящихся к области решения задач, иметь более одного производителя. При другом подходе многочисленные решения И-параллельных вызовов могут вообще не согласовываться ( и тем самым потенциально приносится в жертву полнота) с целью получения более простой организации распределения ресурсов обработки данных.