python multiprocessing example

python multiprocessing example

Server Code:

#!/usr/bin/python
#-*- coding: UTF-8 -*-
# mpserver.py
#
# Queues are thread and process safe.

from multiprocessing.managers import BaseManager

# g as a server process state
g = 10000

class MathClass(object):
    def add(self, x, y):
        return x + y + g
    def mul(self, x, y):
        return x * y

class MathManager(BaseManager):
    pass

MathManager.register(‘Math‘, MathClass)

manager = MathManager(address=(‘‘, 50000), authkey=‘abc‘)
server = manager.get_server()
server.serve_forever()

Client Code:

#!/usr/bin/python
#-*- coding: UTF-8 -*-
# mpclient.py
#
# Queues are thread and process safe.

from multiprocessing.managers import BaseManager

class MathClass(object): pass    

class MathManager(BaseManager): pass

MathManager.register(‘Math‘, MathClass)

manager = MathManager(address=(‘‘, 50000), authkey=‘abc‘)
manager.connect()
m = manager.Math()

print m.add(100, 20)
时间: 2024-10-30 21:44:38

python multiprocessing example的相关文章

python MultiProcessing模块进程间通信的解惑与回顾

这段时间沉迷MultiProcessing模块不能自拔,没办法,python的基础不太熟,因此就是在不断地遇到问题解决问题.之前学习asyncio模块学的一知半解,后来想起MultiProcessing模块更是一知半解,趁着暑假无聊就研究了一下,不得不说,这加深了自己对Python基础的掌握与理解...于是就有了这一系列<python标准库之MultiProcessing库的研究 (1)><python MultiProcessing标准库使用Queue通信的注意要点><py

python MultiProcessing标准库使用Queue通信的注意要点

今天原本想研究下MultiProcessing标准库下的进程间通信,根据 MultiProcessing官网 给的提示,有两种方法能够来实现进程间的通信,分别是pipe和queue.因为看queue顺眼,就想着拿queue实现,后来,被坑了....于是有了这篇文章.我按照 python标准库之MultiProcessing库的研究 (1) 里面的代码来的,结果就是不断的出错,死过就是不出结果,看看程序: from multiprocessing import Pool, queues impor

关于python multiprocessing进程通信的pipe和queue方式

这两天温故了python 的multiprocessing多进程模块,看到的pipe和queue这两种ipc方式,啥事ipc? ipc就是进程间的通信模式,常用的一半是socke,rpc,pipe和消息队列等. 今个就再把pipe和queue搞搞. #coding:utf-8 import multiprocessing import time def proc1(pipe):     while True:         for i in xrange(10000):            

Python multiprocessing相关疑问

1. multiprocessing 和 threading有什么区别? threading module并没有真正利用多核.而multiprocessing 利用subprocess避开了python 中的Global Interpreter Lock. "the multiprocessing module allows the programmer to fully leverage multiple processors on a given machine." 2. 为什么我

Python multiprocessing模块中的Pipe管道

multiprocessing.Pipe([duplex]) 返回2个连接对象(conn1, conn2),代表管道的两端,默认是双向通信.如果duplex=False,conn1只能用来接收消息,conn2只能用来发送消息.不同于os.open之处在于os.pipe()返回2个文件描述符(r, w),表示可读的和可写的 实例如下: #!/usr/bin/python #coding=utf-8 import os from multiprocessing import Process, Pip

Python multiprocessing模块

(1)multiprocessing支持子进程.通信和共享数据.执行不同形式的同步.(2)Process创建进程的类:Process([group [, target [, name [, args [, kwargs]]]]]),target表示调用对象,args表示调用对象的位置参数元组.kwargs表示调用对象的字典.Name为别名.Group实质上不使用. 方法有:is_alive()..join([timeout]).run().start().terminate().属性有:auth

Python multiprocessing

? 推荐教程 官方文档 multiprocess各个模块较详细介绍 廖雪峰教程--推荐 Pool中apply, apply_async的区别联系 (推荐)python多进程的理解 multiprocessing Process join run multiprocessing.Manager.Queuue vs multiprocessing.Queuue 队列 说明 multiprocessing.Queuue 只应通过继承在进程之间共享 Queue 对象 multiprocessing.Ma

python multiprocessing模块 介绍

一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程. Python提供了multiprocessing. multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似. multiprocessing模块的功能众多:支持子进程.通信和共享数据.执行不同形式的同步,

Python Multiprocessing 多进程,使用多核CPU计算 并使用tqdm显示进度条

1.背景   在python运行一些,计算复杂度比较高的函数时,服务器端单核CPU的情况比较耗时,因此需要多CPU使用多进程加快速度 2.函数要求  笔者使用的是:pathos.multiprocessing 库,进度条显示用tqdm库,安装方法: pip install pathos 安装完成后 from pathos.multiprocessing import ProcessingPool as Pool from tqdm import tqdm 这边使用pathos的原因是因为,mul