Python进程无法通过阻塞输入启动
这是一个简单的测试代码。如果把 # time.sleep(0.5) 这一行去掉,函数就不会在其他进程中启动。那有没有办法不使用 time.sleep 呢?
import multiprocessing
import time
def add(counter):
while 1:
print(counter.value)
counter.value += 1
time.sleep(1)
if __name__ == '__main__':
counter = multiprocessing.Value('i', 0)
t = multiprocessing.Process(target=add, args=(counter,))
t.start()
# time.sleep(0.5)
input("blocking...")
我原本期待的结果是:0 1 2 等等。但我遇到了阻塞...
更新:
在控制台中可以正常运行。如果通过 Pycharm 窗口运行,进程就会被阻塞。
1 个回答
-1
看起来你忘了连接了:
import multiprocessing
import time
def add(counter):
while 1:
print(counter.value)
counter.value += 1
time.sleep(1)
if __name__ == '__main__':
counter = multiprocessing.Value('i', 0)
t = multiprocessing.Process(target=add, args=(counter,))
t.start()
t.join()
input("blocking...")