分页: 1 / 1
#1 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:26
由 (ヅ)
将军们看出来了吗?
代码: 全选
import multiprocessing as mp
def func(x):
return x
with mp.Pool() as p:
results = p.map(func, [1, 2, 3])
print(results)
#2 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:40
由 fard
if __name__ == '__main__':
#3 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:42
由 YouHi
看不出啥问题。
#4 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:47
由 (ヅ)
fard 写了: 2023年 12月 19日 15:40
if __name__ == '__main__':
对了
#5 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:47
由 (ヅ)
YouHi 写了: 2023年 12月 19日 15:42
看不出啥问题。
跑一下就看到了
#6 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:47
由 YouHi
(ヅ) 写了: 2023年 12月 19日 15:47对了
这个不是必须的吧。
#7 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:48
由 YouHi
(ヅ) 写了: 2023年 12月 19日 15:47
跑一下就看到了
跑了。
save as 1.py
python3 1.py
works fine
#8 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:48
由 YouHi
我开始还考虑是不是没有reduce。
#9 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:49
由 (ヅ)
YouHi 写了: 2023年 12月 19日 15:47
这个不是必须的吧。
mp隐藏的自己import自己这个文件,套娃了
#10 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 15:51
由 (ヅ)
YouHi 写了: 2023年 12月 19日 15:48
跑了。
save as 1.py
python3 1.py
works fine
hmm,我试下在命令行试试
在pycharm里面用的
#11 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 17:10
由 (ヅ)
YouHi 写了: 2023年 12月 19日 15:48
跑了。
save as 1.py
python3 1.py
works fine
原来你是linux下的, debian和arch都不会出这问题
#12 Re: 这段python代码有什么问题
发表于 : 2023年 12月 19日 22:53
由 huangchong
(ヅ) 写了: 2023年 12月 19日 15:26
将军们看出来了吗?
代码: 全选
import multiprocessing as mp
def func(x):
return x
with mp.Pool() as p:
results = p.map(func, [1, 2, 3])
print(results)
代码: 全选
In [1]: import multiprocessing as mp
...:
...:
...: def func(x):
...: return x
...:
...:
...: with mp.Pool() as p:
...: results = p.map(func, [1, 2, 3])
...: print(results)
...:
[1, 2, 3]
#13 Re: 这段python代码有什么问题
发表于 : 2023年 12月 20日 12:57
由 YouHi
LOL这个也能上十大。
@ (ヅ)研究一下phpBB到底用什么算法算十大。估计可以改进。
#14 Re: 这段python代码有什么问题
发表于 : 2023年 12月 21日 10:29
由 (ヅ)
总结一下,造成这个问题的原因是windows和linux对于生成子进程的方式不同. 可以参考下文里面的例子
https://pythonforthelab.com/blog/differ ... and-linux/
"On Linux, when you start a child process, it is Forked. It means that the child process inherits the memory state of the parent process. On Windows (and by default on Mac), however, processes are Spawned. It means that a new interpreter starts and the code reruns. "