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 相关文章推荐
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 Python
python和C语言混合编程实例
Jun 04 Python
Python中函数的用法实例教程
Sep 08 Python
python中查看变量内存地址的方法
May 05 Python
Python中的默认参数实例分析
Jan 29 Python
Python实现自动上京东抢手机
Feb 06 Python
Python selenium抓取微博内容的示例代码
May 17 Python
python实现多人聊天室
Mar 31 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
Apr 07 Python
Python Map 函数的使用
Aug 28 Python
Python Django模型详解
Oct 05 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 数据结构 算法 三元组 Triplet
2011/07/02 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
php检测useragent版本示例
2014/03/24 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
JS判定是否原生方法
2013/07/22 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
Python中下划线的使用方法
2015/03/27 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
Python错误处理操作示例
2018/07/18 Python
python将list转为matrix的方法
2018/12/12 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
Python线程之定位与销毁的实现
2019/02/17 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
Python正则表达式学习小例子
2020/03/03 Python
浅析Python 条件控制语句
2020/07/15 Python
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
高中竞选班长演讲稿
2014/04/24 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
Python turtle实现贪吃蛇游戏
2021/06/18 Python