异步阻塞等概念

拿网上老张喝茶为例子:

同步阻塞:

老张把水壶放到火上,立等水开

同步非阻塞:

老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有

异步阻塞:

老张买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。老张把响水壶放到火上,立等水开

异步非阻塞:

老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶

总结:

异步同步反映的是执行者执行方式,同步表示执行者主动查询,异步表示自己不主动查询而是等待消息等机制通知。

阻塞非阻塞反映的是执行者执行状态,阻塞表示执行者等待,非阻塞表示执行者不等做其他事情。

由facebook开源的web框架tornado就是宣称依靠异步非阻塞解决C10K问题。其异步思想主要有:

1 回调callback

2 基于python yeild机制的异步,主要是在执行一段需要等待io结果的程序A时,利用yield挂起,让CPU去执行其他程序。当io返回完毕时触发send or next函数重回A,继续执行。

你可能感兴趣的:(计算机网络区,tornado)