-
-
Notifications
You must be signed in to change notification settings - Fork 34.2k
Closed as not planned
Labels
Description
Bug report
Bug description:
`import multiprocessing
import time
import os
def increment(shared_val, quene):
quene.put(os.getpid())
for _ in range(100):
with shared_val.get_lock(): # 使用共享变量内部的锁
shared_val.value += 1
if name == "main":
# 关键:创建时指定 lock=True
shared_counter = multiprocessing.Value('i', 0, lock=True)
quene = multiprocessing.Queue()
pool = []
for i in range(10):
p = multiprocessing.Process(target=increment, args=(shared_counter, quene))
p.start()
pool.append(p)
for p in pool:
p.join()
print(f"最终计数器的值: {shared_counter.value}, 进程号数量{quene.qsize()}, 进程数{len(pool)}") `
有概率出现 shared_counter.value为9900, quene.qsize()为99, len(pool)的值为100
CPython versions tested on:
3.10
Operating systems tested on:
Windows
Reactions are currently unavailable