2016-12-21 5 views
0

Я новичок в многопроцессорности в python. Я встречаюсь с программой алгоритма. я застрял в нем почти неделю. Я буду очень благодарен за помощь. Я покажу алгоритм. Глобальные переменные X, k среди нескольких процессов.многопроцессор python с общими переменными и асинхронный?

  1. Read переменную X из глобальной памяти
  2. петли в то время как к < 100 (The K общий счетчик памяти)

    a). k=k+1, globaly 
        b). Read y from the global memory with locks 
        c). compute _g=G(k,y,x) 
        d). USING _g to update the y and X,globally, with locks 
    

    КОНЕЦ

ответ

0

Вы не можете разделить переменные или любой другой встроенный тип процессов. Для обмена данными между процессами, multiprocessing модуль имеет два типа:

  1. Queue
  2. Pipe

Проверил: Exchanging objects between processes документ.


Queue document говорит:

Возвращает процесс общей очереди, реализованный с использованием трубы и несколько замков/семафоры. Когда процесс сначала помещает элемент в очередь, запускается поток фидера, который переносит объекты из буфера в трубу.

В соответствии с Pipe document:

Возвращает пару (conn1, conn2) объектов, представляющих Соединительные концы трубы.

Если дуплекс True (по умолчанию), то труба двунаправленная. Если дуплекс False, то канал является однонаправленным: conn1 может использоваться только для приема сообщений, а conn2 может использоваться только для отправки сообщений.

+0

Зачем кому-то делать это? –

+2

Возможно, это потому, что я не представил фактический код/​​пример, который будет работать для OP. И это потому, что я не знаю, чего хочет добиться OP. Я бы оценил, может ли проголосовавший может оставить комментарий, рассматривающий этот вопрос, что поможет мне в улучшении ответа –