同步:发出一个功能调用时,在没有获得结果以前,该调用就不会返回,原地等待多线程
异步:相反,不须要等待异步
阻塞:调用结果返回以前,当前线程会被挂起,如io操做,只有在获得返回结果以后,才会将阻塞的线程激活和同步不同,不要混淆,同步虽然也在原地等待,可是它的线程仍是激活的。socket
非阻塞 相反函数
阻塞IO:socket默认是阻塞的线程
解决方案:使用多线程或多进程,可是问题是若是链接数太多,会严重占用计算机资源使用线程池或进程池,只是必定程度上缓解了,可是池子始终有上限。。。因此仍是用非阻塞吧。server
非阻塞IO:用户进程实际上是须要不断的主动询问kernel数据准备好了没有。进程
server.setblocking(False)事件
弊端:循环调用recv()将大幅度cpu占用率。检测操做是否完成,毫不被推荐资源
多路复用IO:事件驱动模型
select 代替咱们去询问,至关于中介处理的链接数不是很高,还不如以前的,可是若是链接数很是大,效果显而易见的。同步