尝试在VSCode中的VMware Workstation 15中的Linux VM中运行简单的测试脚本 . 该脚本只挂在工作池中,'results = p.map(f,chunk)' . 不确定我是否错过了让它在VM或Linux中运行的东西 . 在窗户上运行良好 .
import multiprocessing as mp
import os
import time
def f(x):
print('Doing: ' + str(x) + ' with process id:'+ str(os.getpid()) + '\n')
return(x*x)
def main():
start_time = time.time()
id_list = range(100)
chunksize = 2
lock = mp.Lock()
p = mp.Pool(chunksize)
for i in range(0, len(id_list), chunksize):
print(i)
if (i + chunksize) > len(id_list):
chunk = id_list[i:]
else:
chunk = id_list[i : i + chunksize]
results = p.map(f, chunk)
for j in range(len(results)):
lock.acquire()
try:
print('The results is: ' + str(results[j]) + '\n')
finally:
lock.release()
p.close()
end_time = time.time()
print(end_time - start_time)
if __name__ == "__main__":
print("Starting")
main()
print("Done")