多线程和协程都属于IO密集型,我通过以下用例测试多线程和协程的实际速率对比。
实例:通过socket客户端以多线程并发模式请求不同服务器端(这里服务器端分2种写法:第一种服务器通过协程实现,第二种服务器通过多线程实现)的访问速率
第一种服务器端写法:通过gevent实现

第二种服务器端写法:通过多线程实现

客户端:

结果:客户端每次运行,自动生成100个线程并发执行,每个线程自循环10次访问,对协程模式服务器的执行一次时长为: 0.17600011825561523秒, 对多线程服务器执行一次时长为:1.312999963760376 秒,通过结果对比协程模式实现的socket服务器处理速率远远高于多线程服务器
网友评论