На чисто функциональном языке порядок оценки не имеет значения - в функциональном приложении fn (arg1.. argn), n аргументы могут быть оценены параллельно. Это гарантирует высокий уровень (автоматического) параллелизма.
Erlang использует модель процесса, куда процесс может работать в той же виртуальной машине, или на различном процессоре - нет никакого способа сказать. Это только возможно, потому что сообщения копируются между процессами, нет никакого общего (изменяемого) состояния. Многопроцессорный параллелизм идет намного дальше, чем многопоточность, так как потоки зависят от общей памяти, это там может только быть 8 потоками, работающими параллельно на 8 ядрах процессора, в то время как многопроцессорная обработка может масштабироваться к тысячам параллельных процессов.
Отдельные описания CascadeType могут немного сбивать с толку, но есть простой способ выяснить это из общего случая.
Для любого из значений CascadeType
это означает, что если операция X
вызывается в экземпляре с использованием EntityManager
, и этот экземпляр имеет ссылки на другие экземпляры сущности, и эта ассоциация имеет CascadeType.X
, то операция EntityManager
также будет применена к этому связанному объекту.
Итак, EntityManager.refresh ()
определяется как:
Обновить состояние экземпляра из база данных, перезаписывая сделанные изменения к объекту, если таковой имеется.
Итак, если объект A имеет ссылку на объект B, и эта ссылка аннотирована @ CascadeType.REFRESH
и EntityManager.refresh (A)
] вызывается EntityManager.refresh (B)
также неявно.