Словарь Python3 модифицируется на другой Trhead, не показывает изменения после этих модификаций в исходном потокеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Словарь Python3 модифицируется на другой Trhead, не показывает изменения после этих модификаций в исходном потоке

Сообщение Anonymous »

Версия Python: (3.9, но тот же результат с Python 3.12) < /p>
Цель состояла в том, что другой поток изменил словарь, и эти изменения, которые будут доступны в исходном потоке.

Код: Выделить всё

import multiprocessing as mp
import sys

def my_func(result: dict):
print(f'variable address at worker: {hex(id(result))}', file=sys.stderr)
result["test"] = "test"
print(f'{result}', file=sys.stderr)

result = {}
print(f'variable address at main thread: {hex(id(result))}', file=sys.stderr)
my_worker = lambda : my_func(result)

# execution at another Thread
p = mp.Process(target=my_worker)
p.start()
p.join()

print(f'result at main thread after execution: {result}', file=sys.stderr)

# manual execution
my_worker()
print(f'result at main thread after manual execution: {result}', file=sys.stderr)

print(sys.version)
< /code>
А вывод: < /p>
variable address at main thread: 0x6ffffff39580
variable address at worker: 0x6ffffff39580
{'test': 'test'}
result at main thread after execution: {}
result at main thread after manual execution: {'test': 'test'}
3.9.16 (main, Mar  8 2023, 22:47:22)
[GCC 11.3.0]
Мои ожидания заключались в том, что словарь результатов покажет изменения, сделанные у работника, но это не так.
Что я делаю неправильно?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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