【发布时间】:2021-08-29 05:23:15
【问题描述】:
当我运行它并输入一些内容时,它会进入主函数,但随后又要求输入。为什么会发生这种情况? 我在 Windows 中使用命令提示符运行。版本是 3.8
import multiprocessing
from concurrent.futures import ProcessPoolExecutor
import concurrent.futures
input('?')
def pp(id,lock):
with lock:
for i in range(5):
print(f'{id}=>{i}')
def main():
pool = ProcessPoolExecutor()
m = multiprocessing.Manager()
lock = m.Lock()
futures = [pool.submit(pp, num,lock) for num in range(10)]
with concurrent.futures.ThreadPoolExecutor(max_workers=100) as executor:
executor.map(main, list(range(10)),[lock]*10)
if __name__=='__main__':
main()
这是输出:
?abc
?abd
????
如何解决这个问题,让它只运行一次输入?
【问题讨论】:
-
你是如何运行它的?
-
我也使用 pyinstaller 将它作为 .exe 运行.. 但这也有同样的问题
标签: python python-multiprocessing main concurrent.futures