python 多进程通信模块的简单实现

yipeiwu_com6年前Python基础

多进程通信方法好多,不一而数。刚才试python封装好嘅多进程通信模块 multiprocessing.connection。

简单测试咗一下,效率还可以,应该系对socket封装,效率可以达到4krps,可以满足好多方面嘅需求啦。

附代码如下:

client

复制代码 代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
""" download - slave
"""
__author__ = 'Zagfai'
__license__ = 'MIT@2014-02'

import webtul
from multiprocessing.connection import Client

a = 0
try:
    while True:
        a += 1
        address = ('10.33.41.112', 6666)
        conn = Client(address, authkey='hellokey')
        #print conn.recv()
        d = conn.recv()
        conn.close()
except:
    pass

print a

server

复制代码 代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
""" downloader - master server
"""
__author__ = 'Zagfai'
__license__ = 'MIT@2014-02'

import webtul
from multiprocessing.connection import Listener
from threading import Thread


def listener():
    address = ('10.33.41.112', 6666)
    listener = Listener(address, backlog=100, authkey='hellokey')
    while True:
        conn = listener.accept()
        #print 'connection accepted from', listener.last_accepted
        try:
            conn.send({'1':2, '2':'abc'})
        except Exception, e:
            print e
        finally:
            conn.close()
    listener.close()

listener_th = Thread(target=listener)
listener_th.daemon = True
listener_th.start()
listener_th.join(timeout=20)

相关文章

Python字符串逐字符或逐词反转方法

目的   把字符串逐字符或逐词反转过来,这个蛮有意思的。 方法   先看逐字符反转吧,第一种设置切片的步长为-1 复制代码 代码如下:   revchars=astring[::-1]...

浅谈django开发者模式中的autoreload是如何实现的

在开发django应用的过程中,使用开发者模式启动服务是特别方便的一件事,只需要 python manage.py runserver 就可以运行服务,并且提供了非常人性化的autore...

Python SQLAlchemy入门教程(基本用法)

本文将以Mysql举例,介绍sqlalchemy的基本用法。其中,Python版本为2.7,sqlalchemy版本为1.1.6。 一. 介绍 SQLAlchemy是Python中最有名...

用Python编写分析Python程序性能的工具的教程

用Python编写分析Python程序性能的工具的教程

虽然并非你编写的每个 Python 程序都要求一个严格的性能分析,但是让人放心的是,当问题发生的时候,Python 生态圈有各种各样的工具可以处理这类问题。 分析程序的性能可以归结为回答...

Linux上使用Python统计每天的键盘输入次数

Github 项目主页 工具源码 分析结果: total : 15981 1568.0 == Backspace 1103.0 == Tab 1038.0 == Enter 900....