Мы рассматриваем возможность перефакторинга большого приложения со сложным графическим интерфейсом, который изолированным образом отделен от серверной части, чтобы использовать новый (Python 2.6) модуль многопроцессорной обработки. GUI / внутренний интерфейс использует очереди с объектами сообщений, которыми обмениваются в обоих направлениях.
Одна вещь, которую я только что заключил (предварительно, но не стесняйтесь это подтвердить), заключается в том, что «идентичность объекта» не будет сохранена в многопроцессорном интерфейсе. В настоящее время, когда наш графический пользовательский интерфейс публикует сообщение для серверной части, он ожидает получить то же сообщение обратно с результатом, присоединенным в качестве атрибута. Он использует идентификатор объекта (if received_msg is message_i_sent:
) для идентификации возвращаемых сообщений в некоторых случаях ... и это, вероятно, не будет работать с многопроцессорной обработкой.
Этот вопрос состоит в том, чтобы спросить, что "гвозди", подобные этому, вы видели в реальном использовании или можете себе представить, что можно встретить при наивном использовании модуля многопроцессорной обработки, особенно при рефакторинге существующего однопроцессное приложение. Пожалуйста, укажите, основан ли ваш ответ на фактическом опыте. Бонусные баллы за предоставление полезного решения проблемы.
Редактировать: Несмотря на то, что я собирался собрать описание проблем в целом , я думаю, что я сделал две ошибки: я сделал это вики сообщества с самого начала (что, вероятно, заставляет многих игнорировать это, поскольку они не будут получать очки репутации), и я привел слишком конкретный пример, который - хотя я ценю ответы - вероятно, заставил многих пропустить запрос об общих ответах. Я, вероятно, перефразирую и перепрошиваю это в новом вопросе. На данный момент я принимаю один ответ как лучший, просто чтобы закрыть вопрос, насколько он относится к конкретному примеру, который я включил. Спасибо тем, кто ответил!