cr7tianxie 2022-06-22 23:27 采纳率: 100%
浏览 17
已结题

python多进程出现问题

正常应该是同时进行主进程和子进程的代码,但是结果打印出来是按顺序进行的

代码如下:
from multiprocessing import Process

def ceshi():
for i in range(50):
print(i, "子")

if name == 'main':
a = Process(target=ceshi)
a.start()
for i in range(50):
print(i,"主")

运行结果及报错内容
0 主
1 主
2 主
3 主
4 主
5 主
6 主
7 主
8 主
9 主
10 主
11 主
12 主
13 主
14 主
15 主
16 主
17 主
18 主
19 主
20 主
21 主
22 主
23 主
24 主
25 主
26 主
27 主
28 主
29 主
30 主
31 主
32 主
33 主
34 主
35 主
36 主
37 主
38 主
39 主
40 主
41 主
42 主
43 主
44 主
45 主
46 主
47 主
48 主
49 主
0 子
1 子
2 子
3 子
4 子
5 子
6 子
7 子
8 子
9 子
10 子
11 子
12 子
13 子
14 子
15 子
16 子
17 子
18 子
19 子
20 子
21 子
22 子
23 子
24 子
25 子
26 子
27 子
28 子
29 子
30 子
31 子
32 子
33 子
34 子
35 子
36 子
37 子
38 子
39 子
40 子
41 子
42 子
43 子
44 子
45 子
46 子
47 子
48 子
49 子

我的解答思路和尝试过的方法
我对了每一个代码,都已经按照电脑上的一模一样敲打了,还是不行

我想要达到的结果
应该是顺序交错的。

  • 写回答

1条回答 默认 最新

  • 桔子code 2022-06-23 00:01
    关注

    启动一个进程是很耗时间的,你这样主进程运行完循环后,子进程还在“慢慢”启动,所以看到这样的效果。 有2种方法可以改变运行效果:1.主进程中的循环加大到5000等更大的数值; 2、主进程中添加time.sleep(0.3) 或其他延时,需要导入time模块

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月1日
  • 已采纳回答 6月23日
  • 创建了问题 6月22日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度