前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python多任务编程——多进程的使用

Python多任务编程——多进程的使用

原创
作者头像
落雨
发布2022-02-21 22:30:04
29.5K0
发布2022-02-21 22:30:04
举报
文章被收录于专栏:落雨的专栏落雨的专栏

1.导入进程包

代码语言:javascript
复制
import multiprocessing

multiprocessing?是一个支持使用与?threading?模块类似的 API 来产生进程的包。?multiprocessing?包同时提供了本地和远程并发操作,通过使用子进程而非线程有效地绕过了?全局解释器锁。 因此,multiprocessing?模块允许程序员充分利用给定机器上的多个处理器。 它在 Unix 和 Windows 上均可运行。

2.创建进程

Process([group [, target [, name [, args [, kwargs]]]]])

group参数未使用,值始终为None

target表示调用对象,即子进程要执行的任务

args表示调用对象的位置参数元组,args=(1,2,'hello',)

使用multiprocessing.Process创建进程,target表示要执行的函数,可以使用args传入元组必须要用逗号如

args=('张三',)或者用kwarges传入字典需要使用关键字的方式来指定参数,如kwargs={'name':'zhangsan','age':18}

代码语言:javascript
复制
#创建进程
sub_process = multiprocessing.Process(target=task)

3.启动进程

代码语言:javascript
复制
#启动进程
sub_process.start()

常用方法

start()启动子进程实例

join()等待子进程执行结束

terminate()不管任务是否完成 立即终止

4.最终实现

代码语言:javascript
复制
import multiprocessing
import time

 
def dance():
    for i in range(5):
        print("dance...")
        time.sleep(1)

def sing():
    for i in range(5):
        print("sing...")
        time.sleep(1)
 
 
# 判断是否是直接执行的模块, 程序入口模块
# 标准python写法,直接执行的模块,需要加上判断是否是主模块的代码
if __name__ == '__main__':
    #创建
    dance_process = multiprocessing.Process(target=dance)
    sing_process = multiprocessing.Process(target=sing)
    #启动
    dance_process.start()
    sing_process.start()
    

输出结果:

代码语言:javascript
复制
dance...
sing...
dance...
sing...
dance...
sing...
dance...
sing...
dance...
sing...

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.导入进程包
  • 2.创建进程
  • 3.启动进程
    • 常用方法
    • 4.最终实现
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    http://www.vxiaotou.com