Python多进程入门

78 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第19天,点击查看活动详情

在了解Python的多任务之前,我们先看看什么是并发和并行。虽然这两个看着比较相似,但还是有区别的。并发是一段时间内交替执行任务,操作系统轮流让程序交替执行。而并行是多个软件一起执行,并会有被打断的情况,一般存在于多核cpu中。

在Python中,我们可以通过多进程来实现多任务的执行,进程之间是互不干扰的。

多进程

下篇我们将从一个例子入手看看Python的多进程是怎么使用的。

# 1. 导入进程包
import multiprocessing
import time


# 唱
def sing():
    for i in range(5):
        print("唱...")
        time.sleep(0.2)

# 跳
def dance():
    for i in range(5):
        print("跳...")
        time.sleep(0.2)

dance_process = multiprocessing.Process(target=dance)
sing_process = multiprocessing.Process(target=sing)

dance_process.start()
sing_process.start()

代码详解

这个代码具体是什么功能呢,我们逐一分析一下,我想你就明白了。

第一步,我们引入进程包,使用多进程来编程就需要我们先导入多进程包,这里除了导入进程包之外,还导入了time包,这是在阻塞当前进程会用到的包。

第二步,我们定义唱和跳的函数,都是循环五次,打印唱跳然后进程睡眠200毫秒,rap和篮球的函数我就不定义了哈,都是一样的。

第三步,创建唱和跳的子进程,就是使用multiprocessing.Process()函数来进行创建,后面target指的是执行的任务的名称,也就是前面定义的sing和dance函数,除此以外,我们还可以通过name参数来设置进程的名字,不设置的话就是Process-1,Process-2。。。,可以通过group参数来划分组

第四步,启动创建的这两个子进程

这样整体就完成,代码的功能我们也可以看出来了了,唱和跳方法被两个进程调用,输出相应的值,具体这两个进程哪个先调用将由操作系统来决定。

小结

这篇文章我们讲了Python多进程的使用,具体步骤就是先引入包,然后创建子进程,这里的进程的操作和Java中的线程操作有点类似。