I wrote a program in order to learn how to manage shared memory:
import time
from multiprocessing import Pool, Value
def increment_counter(counter):
print(f'Executing')
with counter.lock:
counter.value +=1
print(f'{counter.value}')
time.sleep(0.1)
if __name__ == "__main__":
counter = Value('i', 0)
pool = Pool(processes=7)
while counter.value < 100:
pool.apply_async(increment_counter,(counter))
It never executes the function, in fact it never print 'Executing'.
question from:
https://stackoverflow.com/questions/65859681/problems-with-shared-memory-with-multiprocessing-pool 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…