Сериализация и параллелизм - PullRequest
1 голос
/ 25 ноября 2011

Предположим, есть две функции x, f и g. Оба изменяют значение x.

Случай 1: оба не сериализованы и выполняются параллельно.

Случай 2: f сериализуется, а g нет. Они выполняются параллельно.

Вопрос: Пусть все возможные значения x после полного выполнения в случае 1 равны N. Пусть все возможные значения x после полного выполнения в случае 2 равны M.

М равен N?

Другими словами: Есть ли разница, если сериализована только одна из двух функций? Если обе функции не будут сериализованы, будет ли использоваться сериализация?

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

Как говорится в тексте, сериализация

создает выделенные наборы процедур, так что только один раз выполнение процедуры в каждом сериализованном наборе допускается одновременно

поэтому вам нужно сериализовать обе процедуры, которые внесут изменения в общую переменную.

0 голосов
/ 25 ноября 2011

Не строгий (извините, если это для домашней работы ;-)), но практический ответ: все мутации (т. Е. Обе функции в вашем случае) должны быть синхронизированы, чтобы иметь предсказуемые результаты.

...