【发布时间】:2017-08-19 13:29:09
【问题描述】:
我需要使用asyncio 和os.fork() 方法在子进程之间共享套接字。
data_received()回调中有一个heavy_jobs()函数,会占用大量CPU时间。
import asyncio
class EchoClientProtocol(asyncio.Protocol):
def __init__(self, message, loop):
self.message = message
self.loop = loop
def data_received(self, data):
heavy_jobs()
loop = asyncio.get_event_loop()
message = 'Hello World!'
coro = loop.create_connection(lambda: EchoClientProtocol(message, loop),
'127.0.0.1', 8000)
loop.run_until_complete(coro)
loop.run_forever()
loop.close()
在传统方法中,我们可以使用fork()在子进程和父进程之间共享套接字:
bind(...);
listen(...);
pid = fork();
那么,我怎么能在asyncio 中做同样的事情呢?
【问题讨论】:
标签: python python-3.x sockets python-asyncio