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中的super()方法使用简介
Aug 14 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
centos6.8安装python3.7无法import _ssl的解决方法
Sep 17 Python
使用python爬取抖音视频列表信息
Jul 15 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
Aug 29 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
Python使用type动态创建类操作示例
Feb 29 Python
Python 线性回归分析以及评价指标详解
Apr 02 Python
numpy矩阵数值太多不能全部显示的解决
May 14 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
Python函数对象与闭包函数
Apr 13 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
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
JQuery从头学起第一讲
2010/07/04 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
python学习之面向对象【入门初级篇】
2017/01/21 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
2019年Java面试必问之经典试题
2012/09/12 面试题
护士的岗位职责
2013/12/04 职场文书
工会趣味活动方案
2014/08/18 职场文书
个人自查自纠材料
2014/10/14 职场文书
教师先进个人材料
2014/12/17 职场文书
总账会计岗位职责
2015/04/02 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP