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实现LRU算法的2种方法
Jun 24 Python
在Python程序中操作MySQL的基本方法
Jul 29 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
django 删除数据库表后重新同步的方法
May 27 Python
python设置环境变量的原因和方法
Jun 24 Python
Djang的model创建的字段和参数详解
Jul 27 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
python 实现两个变量值进行交换的n种操作
Jun 02 Python
Python IO文件管理的具体使用
Mar 20 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
javascript中的new使用
2010/03/20 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
Python迭代器和生成器介绍
2015/03/06 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
Python内置模块logging用法实例分析
2018/02/12 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
印尼网上商店:Alfacart.com
2019/03/11 全球购物
10条PHP编程习惯
2014/05/26 面试题
住房公积金接收函
2014/01/09 职场文书
教师节慰问信
2015/02/15 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS
MySQL如何构建数据表索引
2021/05/13 MySQL
python 爬取吉首大学网站成绩单
2021/06/02 Python
关于nginx 实现jira反向代理的问题
2021/09/25 Servers
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
python lambda 表达式形式分析
2022/04/03 Python