2009-07-10 4 views

ответ

5

Лучше всего обозначить один конкретный процесс как обладающий этим экземпляром и посвященный ему; любой другой процесс, требующий доступа к этому экземпляру, получает его, отправляя сообщения в процесс владения через очередь (как предоставлено модулем многопроцессорности) или другие механизмы IPC для передачи сообщений, и получает ответы через аналогичные механизмы.

+0

Следует ли вместо этого использовать резьбу? – DrFalk3n

5

Вся суть процессов состоит в том, чтобы иметь разные адресные пространства. Если вы хотите обмениваться информацией между процессами, вы должны использовать некоторые средства interprocess communication.

1

Я не думаю, что вы можете совместно использовать экземпляр между процессами, но вы можете иметь доступ к общей памяти экземпляра: http://docs.python.org/library/multiprocessing.html#sharing-state-between-processes, чтобы контролировать его состояние, если это действительно то, что вы хотите сделать.

Однако, как указано в других ответах, было бы легче добиться того, чего вы хотите с помощью очереди.

2

В Python 2.6 модуль multiprocessing имеет объект Value, используемый для sharing state between processes. У них есть образец кода, который должен дать вам представление о том, как разделить это состояние таким образом, и вы можете использовать этот подход при написании одноэлементного класса.

Смежные вопросы