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使用cookie库操保存cookie详解
Mar 03 Python
Python使用bs4获取58同城城市分类的方法
Jul 08 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
使用Python求解最大公约数的实现方法
Aug 20 Python
Python中偏函数用法示例
Jun 07 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
Python网络爬虫信息提取mooc代码实例
Mar 06 Python
Python类super()及私有属性原理解析
Jun 15 Python
pytorch锁死在dataloader(训练时卡死)
May 28 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读写文件的方法(生成HTML)
2006/11/27 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
js数组去重的N种方法(小结)
2018/06/07 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
JavaScript提升机制Hoisting详解
2019/10/23 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
详解K-means算法在Python中的实现
2017/12/05 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
pytorch 共享参数的示例
2019/08/17 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
自然健康的概念:Natural Healthy Concepts
2020/01/26 全球购物
2014年小学元旦活动方案
2014/02/12 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
名人传读书笔记
2015/06/26 职场文书
解决 redis 无法远程连接
2022/05/15 Redis