1,创建多进程(父进程和子进程)

 import os
import time
#多进程都要导入multiprocessing
from multiprocessing import Process def func(args, args2):
print(args, args2)
time.sleep(1)
print('子进程:', os.getpid())
print('子进程的父进程:', os.getpid())
print(12345) if __name__ == '__main__':
#args是一个元组,传一个参数的时候要在后面加逗号,如args=(54321,)
p = Process(target = func, args=('参数','参数2')) #注册
#p是一个进程对象,还没有启动进程
p.start() #开启了一个子进程
print('*'*10)
print('父进程:', os.getpid()) #查看当前进程的进程号
print('父进程的父进程:', os.getppid()) #查看当前进程的父进程的进程号

运行结果:

2、进程的生命周期:

3,多个进程同时开始:

 import time
from multiprocessing import Process def func(arg1,arg2):
print('*'*arg1)
time.sleep(5)
print('*'*arg2) if __name__ == '__main__':
p = Process(target=func,args=(10,20))
p.start()
p1 = Process(target=func, args=(10, 20))
p1.start()
p2 = Process(target=func, args=(10, 20))
p2.start()
p3 = Process(target=func, args=(10, 20))
p3.start()

运行结果:

4,开启多进程的第二种方法:

  #自定义类 继承Precess类
  #必须事项一个run方法,run方法中是在子进程中执行的代码

  例1:

 import os
from multiprocessing import Process class MyProcess(Process):
def run(self):
print(os.getpid()) if __name__ == '__main__':
print('主 :', os.getpid())
p1 = MyProcess()
p1.start()
p2 = MyProcess()
p2.start() #自定义类 继承Precess类
#必须事项一个run方法,run方法中是在子进程中执行的代码

  例2:

 import os
from multiprocessing import Process class MyProcess(Process):
def __init__(self,arg1,arg2):
super().__init__()
self.arg1 = arg1
self.arg2 = arg2 def run(self):
print(self.pid)
print(self.name)
print(self.arg1)
print(self.arg2) if __name__ == '__main__':
# print('主 :', os.getpid())
#实例化:类名跟括号
p1 = MyProcess(1,2)
p1.start()
p2 = MyProcess(3,4)
p2.start()

Python--day37--多进程的更多相关文章

  1. 【python】多进程锁multiprocess.Lock

    [python]多进程锁multiprocess.Lock 2013-09-13 13:48 11613人阅读 评论(2) 收藏 举报  分类: Python(38)  同步的方法基本与多线程相同. ...

  2. Python实现多进程

    Python可以实现多线程,但是因为Global Interpreter Lock (GIL),Python的多线程只能使用一个CPU内核,即一个时间只有一个线程在运行,多线程只是不同线程之间的切换, ...

  3. 『Python』多进程处理

    尝试学习python的多进程模组,对比多线程,大概的区别在: 1.多进程的处理速度更快 2.多进程的各个子进程之间交换数据很不方便 多进程调用方式 进程基本使用multicore() 进程池优化进程的 ...

  4. python 使用多进程实现并发编程/使用queue进行进程间数据交换

    import time import os import multiprocessing from multiprocessing import Queue, pool ""&qu ...

  5. Python多线程多进程

    一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...

  6. python中多进程+协程的使用以及为什么要用它

    前面讲了为什么python里推荐用多进程而不是多线程,但是多进程也有其自己的限制:相比线程更加笨重.切换耗时更长,并且在python的多进程下,进程数量不推荐超过CPU核心数(一个进程只有一个GIL, ...

  7. Python的多进程

    这里不说其它,Python的多进程网上已经有很多了,可以尽情搜索.但是用多进程一般是采用对任务的方式,所以注意文件锁定.一般采用Pool是比较合适的.给个网友的小代码 from multiproces ...

  8. 进程,线程,以及Python的多进程实例

    什么是进程,什么是线程? 进程与线程是包含关系,进程包含了线程. 进程是系统资源分配的最小单元,线程是系统任务执行的最小单元. 打个比方,打开word,word这个程序是一个进程,里面的拼写检查,字数 ...

  9. 进程与线程(2)- python实现多进程

    python 实现多进程 参考链接: https://morvanzhou.github.io/tutorials/python-basic/multiprocessing/ python中实现多进程 ...

  10. Python多线程多进程那些事儿看这篇就够了~~

    自己以前也写过多线程,发现都是零零碎碎,这篇写写详细点,填一下GIL和Python多线程多进程的坑~ 总结下GIL的坑和python多线程多进程分别应用场景(IO密集.计算密集)以及具体实现的代码模块 ...

随机推荐

  1. vue中 表头 th 合并单元格,且表格列数不定的动态渲染方法

    吐槽 今天,在vue中遇到 复杂表格的渲染 ,需要合并表头th的单元格,且合并单元格的那列的表头数据是动态数据,也就是不知道会有多少个表头列,而这几个表头列还分了好几个子表头. 这个需求在js里用Ju ...

  2. HTML5小知识汇总

    1.关于<!DOCTYPE HTML> H5只需要<!DOCTYPE HTML>这样简单的声明,不用之前一长串代码,因为H5不是基于SGML,所以不需要对DTD引用,但是需要D ...

  3. Codeforces 439C

    题目链接 比赛时间没能通过==, 只能说明自己代码写的太不严谨咯! 解题思想就是贪心 先判断无解的情况: 1. 奇数不够,因为偶数是无法凑成奇数的 2. 偶数不够,2个奇数可以凑成一个偶数 3. 在奇 ...

  4. LeafLet 简单使用

    Leaflet 使用 最近在Angular项目中,用到了地图,由于种种原因放弃了百度地图api使用,最后选择了leaflet,简单介绍一下. 介绍: Leaflet 是一个为移动设备设计的交互式地图的 ...

  5. Deserializing/Serializing SOAP Messages in C#

    /// <summary>   /// Converts a SOAP string to an object   /// </summary>   /// <typep ...

  6. 手机端 echarts使用 svg渲染器

    // 使用 Canvas 渲染器(默认) var chart = echarts.init(containerDom, null, {renderer: 'canvas'}); // 等价于: var ...

  7. python自定义函数和内置函数

    函数 1.定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 先定义,后使用 1.2分类 系统函数 自定义函数 1.3语法: def functionname(parameter ...

  8. OFBiz 16.11.03的直接部署、eclipse部署和IDEA部署

    一.在OFBiz官网下载最新的发行版本,也就是16.11.03版本. 下载地址:http://ofbiz.apache.org/download.html   点击页面Apache OFBiz 16. ...

  9. js赋值符号“=”的小例子

    var obj1={x:5}; var obj2=obj1; obj1.a=obj1={x:6}; console.log(obj1.a); console.log(obj2.a); 为什么obj1. ...

  10. 程序跳转到itunes商店

    找到应用程序,点击应用程序下面的小三角图标,再选择"复制链接",就可以获取此应用的链接了. 比如: itunes.apple.com/cn/app/bai-du-wen-kuhd/ ...