Python Tip Day15:利用线程实现异步消息

最近写了个代理池的小程序,其中有一项是需要检测

proxy_adress的可用性。首先建立了一个测试小程序,用某之家提供的测试源码做ip校验。

Python Tip Day15:利用线程实现异步消息

每次验证需要等待网页的响应才能继续往下执行,面对刚刚爬取的几万个代理IP,想从中间挑选出几个能用的实在不容易,仅仅在request.get()等待时间就难以估计。作为小白,第一次真的等了一个晚上。

Python Tip Day15:利用线程实现异步消息

Python Tip Day15:利用线程实现异步消息

无奈想到了的有个I/O密集型和计算密集型的说法,尽管很多人评价Python的多线程很鸡肋,但不得不说,对于I/O密集型的程序来说,这个办法还是很不错的。

Python Tip Day15:利用线程实现异步消息

最开始写了这个办法,直接把原来的check_proxy_is_ava的方法传入到这里面,这样以来,在使用check_proxy_is_ava的时候,就是一直在调用check_async的方法。这样虽然实现了,但最后,还是改变了业务原来的想法,调用方法的时候并不是想调用check_async,而是为了使用check_proxy_is_ava,这样一来,未免觉得别扭。

于是,改成装饰器的写法,当用到的时候,直接装饰上去。这样看起来是一次舒服的使用,既用上可装饰器,也利用线程实现异步消息

Python Tip Day15:利用线程实现异步消息

【文】白水乡巴佬


分享到:


相關文章: