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求pi的方法
Oct 08 Python
Python中的True,False条件判断实例分析
Jan 12 Python
讲解Python中运算符使用时的优先级
May 14 Python
在Python的Django框架中创建和使用模版
Jul 15 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
Python自定义一个异常类的方法
Jun 27 Python
在vscode中配置python环境过程解析
Sep 28 Python
python清空命令行方式
Jan 13 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
Pytorch 中net.train 和 net.eval的使用说明
May 22 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
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
PHP count()函数讲解
2019/02/03 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
深入分析下javascript中的[]()+!
2015/07/07 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
jQuery Datatables表头不对齐的解决办法
2017/11/27 jQuery
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
django删除表重建的实现方法
2019/08/28 Python
python入门之井字棋小游戏
2020/03/05 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
python dict乱码如何解决
2020/06/07 Python
Python项目跨域问题解决方案
2020/06/22 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
2014年国庆节寄语
2014/09/19 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python
快速学习Oracle触发器和游标
2021/06/30 Oracle