multiprocessing模块就是跨平台版本的多进程模块,提供了⼀个Process类来代表一个进程对象

创建⼦进程时,只需要传⼊⼀个执⾏函数和函数的参数,创建⼀个

Process实例,⽤start()方法启动 ,join()⽅法可以等待子进程结束后再继续运行

Process语法结构如下:

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

target:表示这个进程实例所调用对象

args:表示调用对象的位置参数元组

kwargs:表示调用对象的关键字参数字典

name:为当前进程实例的别名;

group:⼤多数情况下⽤不到;

Process类常⽤⽅法:

is_alive():判断进程实例是否还在执⾏;

join([timeout]):是否等待进程实例执行结束,或等待多少秒;

start():启动进程实例(创建子进程);

run():如果没有给定target参数,对这个对象调⽤start()方法时,就讲执行对象中的run()⽅法;

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

Process类常⽤属性:

name:当前进程实例别名,默认为Process-N,N为从1开始递增的整数;

pid:当前进程实例的PID值;

from multiprocessing import ProcessP必须大写

import os

import time

defsub_process_fun(num, a):

"""子进程执行的代码"""

print("子进程:pid=%d" % os.getpid())

print("子进程:num=%d" % num)

print("子进程:a=%d" % a)

for i in range(10):

print("子进程:hello")

time.sleep(0.1)

def main():

print("父进程:pid=%d" % os.getpid())

  p = Process(target=sub_process_fun,args=(100,), kwargs={"a": 200})

# 创建一个子进程对象

 p.start()  # 真正的创建出子进程,子进程可以开始执行代码

print("父进程:hi")

print("父进程:子进程的名字 %s" % p.name)

print("父进程:子进程的pid %d" % p.pid)

print("父进程:子进程的状态 %s" % p.is_alive())

time.sleep(0.1)

  p.terminate()  # 终止子进程的执行  存在延迟

print("父进程:已经终止了子进程")

print("父进程:子进程的状态 %s" % p.is_alive())

  p.join()  # 回收子进程资源  阻塞

print("父进程:已经回收了子进程")

print("父进程:子进程的状态 %s" % p.is_alive())

print("父进程:结束")

if __name__ =='__main__':

main()

多进程模块multiprocessing相关推荐

  1. 11.python并发入门(part9 多进程模块multiprocessing基本用法)

    一.回顾多继承的概念. 由于GIL(全局解释器锁)的存在,在python中无法实现真正的多线程(一个进程里的多个线程无法在cpu上并行执行),如果想充分的利用cpu的资源,在python中需要使用进程 ...

  2. Python之进程+线程+协程(multiprocessing多进程模块)

    前几篇的多线程模块的各种规则和用法,本篇则是关于多进程模块的内容 1.multiprocessing的介绍 在Python中,由于有GIL解释器锁的存在,多线程就根本不是本质意义上的多线程,而是一个主 ...

  3. Python multiprocess 多进程模块

    转发:http://www.langzi.fun/Python multiprocess 多进程模块.html 需要注意的是,如果使用多线程,用法一定要加上if __name__=='__main__ ...

  4. 【python第三方库】python多进程编程multiprocessing库和subprocess库的区别与使用

    多进程,多线程介绍请阅读blog python多线程编程请阅读blog 文章目录 一.mutiprocessing库与subprocess库的区别 二.multiprocessing使用介绍 1. 创 ...

  5. 使用Python的多进程模块

    多核CPU已经成为现代计算机体系结构发展的标准,不仅可以在超级计算机设备中找到,也可以在我们的家用台式机和笔记本电脑中找到;就连苹果(Apple)的iPhone 5S在2013年也配备了1.3 Ghz ...

  6. python processing_python --- mulitprocessing(多进程)模块使用

    1. 什么是进程? 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执 ...

  7. python php multiprocessing,Python多进程并发(multiprocessing)用法实例详解

    本文实例讲述了Python多进程并发(multiprocessing)用法.分享给大家供大家参考.具体分析如下: 由于Python设计的限制(我说的是咱们常用的CPython).最多只能用满1个CPU ...

  8. 多进程(Multiprocessing)

    多进程(Multiprocessing) 源自莫烦python多进程教学 一.多进程的定义和优点 多进程相当于多核处理,它能弥补threading的缺点 即它可以把任务平均分配给每一个核,并且让它们同 ...

  9. python3 多进程库 multiprocessing 使用简介

    引子 前段时间在做的一个Python项目,需要实现一个后台服务程序,程序流程比较复杂,而且可能经常变动,但是如果把整个流程切分成一些步骤,每个步骤有自己的输入输出和处理.只要将他们的输入输出接在一起, ...

最新文章

  1. 性能调优之Java系统级性能监控及优化
  2. module ‘open3d‘ has no attribute ‘PointCloud‘
  3. 28和lba48命令格式区别_linux硬盘分区、格式化、挂载超详细步骤
  4. 遗传算法求最短路径(旅行商问题)python实现
  5. Matrix Completion with Noise
  6. 检查最后出现子字符串的位置!
  7. c++11支持类数据成员的初始化
  8. python发起http请求(httplib)
  9. 通过css使文字有渐变的效果
  10. (6)二进制文件方式部署Kubernetes高可用集群----------安装Docker Engine
  11. java 临时文件 删除_Java临时文件何时被删除?
  12. 编写一个第三方库(动态库和静态库)
  13. mysql 打开sql日志,记录所有sql
  14. PostgreSQL 设置远程访问
  15. html组态插件_BY组态 插件 web组态 插件 物联网组态 插件
  16. java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
  17. 算法:分治法之合并排序
  18. SqlServer Tigger
  19. MSE H265 支持调查
  20. 1085: [SCOI2005]骑士精神

热门文章

  1. Linux 安装配置JDK 、 MySQL 、nginx
  2. P1133 教主的花园 (动态规划)
  3. Fantasia (Tarjan+树形DP)
  4. SQLite3基本使用从shell到python
  5. Linux什么时候在pc机上有一席之地
  6. Android(java)学习笔记171:服务(service)之绑定服务调用服务里面的方法
  7. C语言库函数大全及应用实例六
  8. 一段挂起进程中所有线程的代码
  9. 发布ASP.NET程序至IIS7
  10. 排序算法之希尔排序(C/C++)