![](https://static33.tgcnt.ru/posts/_0/26/2614793a6dee061a4376e3cb60ec5576.jpg)
import threading
obj = {}
obj_lock = threading.Lock()
def objify(key, val):
print("Obj has %d values" & len(obj))
with obj_lock:
obj[key] = val
print("Obj now has %d values" % len (obj))
ts = [threading.Thread(target=objify, args=(
str(n), n)) for n in range(4)]
for t in ts:
t.start()
for t in ts:
t.join()
print("Obj final result:")
import pprint; pprint.pprint(obj)
Оскільки всі потоки виконуються в одному процесі, всі потоки мають доступ до одних і тих же даних. Однак одночасний доступ до загальних даних повинен бути захищений блокуванням, щоб уникнути проблем із синхронізацією.
#Python // #practice // Вакансії IT
obj = {}
obj_lock = threading.Lock()
def objify(key, val):
print("Obj has %d values" & len(obj))
with obj_lock:
obj[key] = val
print("Obj now has %d values" % len (obj))
ts = [threading.Thread(target=objify, args=(
str(n), n)) for n in range(4)]
for t in ts:
t.start()
for t in ts:
t.join()
print("Obj final result:")
import pprint; pprint.pprint(obj)
Оскільки всі потоки виконуються в одному процесі, всі потоки мають доступ до одних і тих же даних. Однак одночасний доступ до загальних даних повинен бути захищений блокуванням, щоб уникнути проблем із синхронізацією.
#Python // #practice // Вакансії IT