python并发库_python的并发库:asyncore和eventlet | 学步园

asyncore就是纯粹的异步socket,和c++使用异步socket没有什么大的区别,就是封装了loop等。实际上还是会有很多状态。

eventlet采用coroutine,本质上也是异步socket,但是已经是将异步socket同步化,没有任何状态(状态都保存在栈中),只有异步才需要考虑状态,同步根本没有状态之分。

所以eventlet明显比asycore要好用很多,也复杂很多。

贴一个asycore的例子:

#!/usr/bin/python

import sys,os,time;

import asyncore,socket;

class HTTPClient(asyncore.dispatcher):

def __init__(self, host, port, path):

asyncore.dispatcher.__init__(self);

self.create_socket(socket.AF_INET, socket.SOCK_STREAM);

self.connect((host, int(port)));

self.buffer = 'GET %s HTTP/1.1\r\nHost: %s\r\n\r\n'%(path, host);

def handle_connect(self):

pass;

def handle_close(self):

self.close();

def handle_read(self):

print("[handle_read] event loop start to read.");

print self.recv(8192

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值