Как использовать блокировку как мутекс в многопроцестрой?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать блокировку как мутекс в многопроцестрой?

Сообщение Anonymous »

Я хочу иметь два процесса, один написание и одно чтение на/из одной и той же переменной. Написанные данные подобны следующим образом: < /p>

[0, 0]
[0, 1]
[1, 0]
[1, 1]
[2, 0]
[2, 1]
[3, 0]
[3, 1]
[4, 0]
[4, 1]
[5, 0]
[5, 1]
[6, 0]
[6, 1]
[7, 0]
[7, 1]
[8, 0]
[8, 1]
[9, 0]
[9, 1]
< /code>

Но у меня проблемы, потому что процесс чтения читает между изменением переменной, формируя новые пары, поэтому я хочу использовать блокировку /мутекс, чтобы предотвратить это снова. Я думаю, что мне придется заблокировать объект, прежде чем изменить его.
OBS: объект передается между процессами с использованием менеджера. < /p>

Вот основной код: < /p>

import multiprocessing

def mde(dad, mutex):
for i in range(10):
for j in range(2):
mutex.acquire()
dad[0] = i
dad[1] = j
mutex.release()
def mda(dad):
c = 0
while c < 30:
print(dad)
c += 1

if __name__ == '__main__':
manager = multiprocessing.Manager()
mutex = manager.Lock()
dado = manager.list([0, 0])
p1 = multiprocessing.Process(target=mde, args=(dado, mutex,))
p2 = multiprocessing.Process(target=mda, args=(dado,))
p1.start()
p2.start()
p1.join()
p2.join()
< /code>

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

Подробнее здесь: https://stackoverflow.com/questions/602 ... processing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Зачем использовать мутекс, а не семафор?
    Anonymous » » в форуме C++
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Зачем использовать мутекс, а не семафор?
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Зачем использовать мутекс, а не семафор?
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Используйте нити вместо мутекс в многопоточной программе
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Используйте нити вместо мутекс в многопоточной программе
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»