STEM版,合并数学,物理,化学,科学,工程,机械。不包括生物、医学相关,和计算机相关内容。
版主: verdelite , TheMatrix
(ヅ) 楼主
论坛支柱
帖子互动: 549
帖子: 11819 注册时间: 2022年 8月 21日 14:20
帖子
由 (ヅ) 楼主 » 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)
fard
论坛点评
帖子互动: 435
帖子: 2636 注册时间: 2023年 12月 5日 14:39
帖子
由 fard » 2023年 12月 19日 15:40
if __name__ == '__main__':
YouHi
论坛元老YouHi 的博客
帖子互动: 2994
帖子: 38567 注册时间: 2022年 7月 22日 22:36
帖子
由 YouHi » 2023年 12月 19日 15:42
看不出啥问题。
(ヅ) 楼主
论坛支柱
帖子互动: 549
帖子: 11819 注册时间: 2022年 8月 21日 14:20
帖子
由 (ヅ) 楼主 » 2023年 12月 19日 15:47
fard 写了: 2023年 12月 19日 15:40
if __name__ == '__main__':
对了
(ヅ) 楼主
论坛支柱
帖子互动: 549
帖子: 11819 注册时间: 2022年 8月 21日 14:20
帖子
由 (ヅ) 楼主 » 2023年 12月 19日 15:47
YouHi 写了: 2023年 12月 19日 15:42
看不出啥问题。
跑一下就看到了
YouHi
论坛元老YouHi 的博客
帖子互动: 2994
帖子: 38567 注册时间: 2022年 7月 22日 22:36
帖子
由 YouHi » 2023年 12月 19日 15:47
(ヅ) 写了: 2023年 12月 19日 15:47 对了
这个不是必须的吧。
YouHi
论坛元老YouHi 的博客
帖子互动: 2994
帖子: 38567 注册时间: 2022年 7月 22日 22:36
帖子
由 YouHi » 2023年 12月 19日 15:48
(ヅ) 写了: 2023年 12月 19日 15:47
跑一下就看到了
跑了。
save as 1.py
python3 1.py
works fine
YouHi
论坛元老YouHi 的博客
帖子互动: 2994
帖子: 38567 注册时间: 2022年 7月 22日 22:36
帖子
由 YouHi » 2023年 12月 19日 15:48
我开始还考虑是不是没有reduce。
(ヅ) 楼主
论坛支柱
帖子互动: 549
帖子: 11819 注册时间: 2022年 8月 21日 14:20
帖子
由 (ヅ) 楼主 » 2023年 12月 19日 15:49
YouHi 写了: 2023年 12月 19日 15:47
这个不是必须的吧。
mp隐藏的自己import自己这个文件,套娃了
(ヅ) 楼主
论坛支柱
帖子互动: 549
帖子: 11819 注册时间: 2022年 8月 21日 14:20
帖子
由 (ヅ) 楼主 » 2023年 12月 19日 15:51
YouHi 写了: 2023年 12月 19日 15:48
跑了。
save as 1.py
python3 1.py
works fine
hmm,我试下在命令行试试
在pycharm里面用的
(ヅ) 楼主
论坛支柱
帖子互动: 549
帖子: 11819 注册时间: 2022年 8月 21日 14:20
帖子
由 (ヅ) 楼主 » 2023年 12月 19日 17:10
YouHi 写了: 2023年 12月 19日 15:48
跑了。
save as 1.py
python3 1.py
works fine
原来你是linux下的, debian和arch都不会出这问题
x1
huangchong (净坛使者)
论坛元老2023-24年度优秀版主
帖子互动: 4094
帖子: 60913 注册时间: 2022年 7月 22日 01:22
帖子
由 huangchong (净坛使者) » 2023年 12月 19日 22:53
(ヅ) 写了: 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]
YouHi
论坛元老YouHi 的博客
帖子互动: 2994
帖子: 38567 注册时间: 2022年 7月 22日 22:36
帖子
由 YouHi » 2023年 12月 20日 12:57
LOL这个也能上十大。
@ (ヅ)研究一下phpBB到底用什么算法算十大。估计可以改进。
x1
(ヅ) 楼主
论坛支柱
帖子互动: 549
帖子: 11819 注册时间: 2022年 8月 21日 14:20
帖子
由 (ヅ) 楼主 » 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. "
x1