想要利用CPU多核资源一Python中多进程(一)

开发 后端
由于python中的多线程无法利用多核优势,如果想要利用CPU多核资源,需要使用多进程。

[[352650]]

 大纲

  1. 使用多进程的原因
  2. 创建多进程的两种方式
  3. 守护进程

使用多进程的原因

由于python中的多线程无法利用多核优势,如果想要利用CPU多核资源,需要使用多进程。

创建多进程

 

Process([target [, args [, name [, kwargs]]]]) 
# target 表示子进程要执行的任务 
# args 元组参数 
# kwargs 字典参数 
name 表示子进程的名称 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
# 方式一 
import time 
from multiprocessing import Process 
 
def run(name): 
    print('{0} 开始跑步'.format(name)) 
    time.sleep(2) 
    print('{0} 跑步结束'.format(name)) 
 
p1 = Process(target=run, args=('小华', )) 
p2 = Process(target=run, args=('小米', )) 
p3 = Process(target=run, args=('小中', )) 
 
p1.start() 
p2.start() 
p3.start() 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

 

方式一演示结果

# 方式二 
import time 
from multiprocessing import Process 
 
class Run(Process): 
    def __init__(self, name): 
        Process.__init__(self) 
        self.name = name 
    def run(self): 
        print('{0} 开始跑步'.format(name)) 
        time.sleep(2) 
        print('{0} 跑步结束'.format(name)) 
 
p1 = Run('小华'
p2 = Run('小米'
p3 = Run('小中'
 
p1.start() 
p2.start() 
p3.start() 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

 

方式二演示结果

守护进程

守护进程会在主进程代码执行结束后就终止。如果子进程的任务在主进程任务结束后就没有存在的必要了,那么该子进程应该在开启前就被设置成守护进程。主进程代码运行结束,守护进程随即终止。

 


启用time.sleep(3)和注释后两种结果演示

 

责任编辑:姜华 来源: 今日头条
相关推荐

2021-03-27 10:53:05

NodeJSCPU服务器

2019-08-12 16:22:07

Python线程场景

2017-06-30 10:12:46

Python多进程

2022-07-11 10:23:42

云原生Python多核CPU

2013-10-30 09:37:19

LinuxLinux命令

2020-11-18 09:06:04

Python

2010-07-21 09:32:03

Linux多核

2021-01-18 06:18:25

监听端口数组

2013-12-18 13:17:56

多核CPU

2009-03-24 21:40:28

多核双核

2024-06-12 11:26:04

2024-03-29 06:44:55

Python多进程模块工具

2021-06-11 06:54:35

PythonThreadingMultiproces

2022-03-09 17:01:32

Python多线程多进程

2022-09-15 08:38:39

WebCPU数量

2017-12-25 09:39:07

Linuxbashparallel

2024-07-30 12:24:23

2021-11-09 17:51:58

多进程通信网络

2010-07-15 12:51:17

Perl多进程

2022-07-27 19:27:47

CPU资源内存
点赞
收藏

51CTO技术栈公众号