python 进程 进程池 进程间通信实现解析


Posted in Python onAugust 23, 2019

1.python 中创建进程的两种方式:

from multiprocessing import Process
import time
def test_():
  print '-----test-----'
if __name__ == '__main__':
  p = Process(target=test_)
  p.start()
  while True:
    print '--main--'
    

'''1.通过process 类创建一个进程对象,然后start即可开启进程, test
test_函数是进程实现的功能'''
 
 from multiprocessing import Process
 import time
 class MyNewProcess(Process):
   def run(self):
     print '------run-------'
 if __name__ == '__main__':
   p = MyNewProcess()
   p.start()
   print '---main-----'
 '''2.通过类似继承process  子类中必须有run 方法 里边实现 进程功能 
 创建对象之后 调用start'''

2.进程池

from multiprocessing import Pool
from time import sleep
import os 
def func(num):
  for i in range(3):
    print '%s %s' %(os.getpid(),num) #
    sleep(2)
def main():
  pool = Pool(3)
  for i in range(3, 6):
    res = pool.apply_async(func, (i,))
  pool.close()
  pool.join() 
if __name__ == '__main__':
  main()

3.进程间通信

'''python 进程间通信   Queue '''

'''1.Queue使用方法
  1.Queue.qsize(): 返回当前队列包含的消息数量
  2.Queue.empty(): 如果队列为空 返回True 反之 False
  3.Queue.full(): 如果队列满了返回True 反之 False
  4.Queue.get():  获取队列中一条消息 然后将其从队列中移除 可传参数 超市时长
  Queue.get_nowait(): 相当于 Queue.get(False) 取不到值 触发异常
  Queue.put(): 将一个值添加到数列 可传参数 超时时长
  Queue.put_nowait():相当于 Queue.get(False) 当队列满时 报错
'''
from multiprocessing import Process, Queue
import time
q = Queue() # 创建队列
for i in range(10):
  q.put(i)    
def test_a():
    try:
      while True:
        num = q.get_nowait()
        print '我是进程a 取出数字为:%s'%num
        time.sleep(1)
    except Exception, e:
      print e
def test_b():
  try:
    while True:
      num = q.get_nowait()
      print '我是进程b 取出数字是:%s'%num
      time.sleep(1)
  except Exception, e:
    print e
if __name__ == '__main__':
  p1 = Process(target=test_a)
  p2 = Process(target=test_b)
  p1.start()
  p2.start()

至此 简单得使用已经结束

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学python系列之数据处理编程实例(二)
May 22 Python
浅析Python的web.py框架中url的设定方法
Jul 11 Python
Python跨文件全局变量的实现方法示例
Dec 10 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
python直接获取API传递回来的参数方法
Dec 17 Python
Python实现程序判断季节的代码示例
Jan 28 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
Python 点击指定位置验证码破解的实现代码
Sep 11 Python
python根据时间获取周数代码实例
Sep 30 Python
python使用ctypes调用扩展模块的实例方法
Jan 28 Python
基于Pytorch SSD模型分析
Feb 18 Python
如何使用Pytorch搭建模型
Oct 26 Python
python实现的生成word文档功能示例
Aug 23 #Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 #Python
详解Matplotlib绘图之属性设置
Aug 23 #Python
python3.6生成器yield用法实例分析
Aug 23 #Python
python基础 range的用法解析
Aug 23 #Python
Django 导出项目依赖库到 requirements.txt过程解析
Aug 23 #Python
Django接收自定义http header过程详解
Aug 23 #Python
You might like
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
python中的for循环
2018/09/28 Python
Python 一句话生成字母表的方法
2019/01/02 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
Python如何读写字节数据
2020/08/05 Python
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
《春雨》教学反思
2014/04/24 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
世界遗产导游词
2015/02/13 职场文书
总经理司机岗位职责
2015/04/10 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
python基础之类方法和静态方法
2021/10/24 Python
MySQL日期时间函数知识汇总
2022/03/17 MySQL