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 相关文章推荐
rhythmbox中文名乱码问题解决方法
Sep 06 Python
python操作CouchDB的方法
Oct 08 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
Python supervisor强大的进程管理工具的使用
Apr 24 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
python实现从wind导入数据
Dec 03 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
python中JWT用户认证的实现
May 18 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
判断Python中的Nonetype类型
May 25 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的Yii框架中Model模型的学习教程
2016/03/29 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
淘宝搜索框效果实现分析
2011/03/05 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
python__name__原理及用法详解
2019/11/02 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
养殖项目策划书范文
2014/01/13 职场文书
刑事和解协议书范本
2014/11/19 职场文书
物业工程部岗位职责
2015/02/11 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers