怎样理解阻塞非阻塞与同步异步的区别?

看过阿里的《深入java web技术内幕后》觉得这个地方需要改改~~~显然书中的说法更加条理清晰

所以修改了一下。下面是我的简略笔记

交互方式:

1同步异步。

  同步在于两组任务同时完成或者同时不完成,具有原子性。异步在与分头进行,两个任务的成功与否没有关联依赖。简单来说异步不可靠但是效率高。只能平衡不能达到完美。

 

2阻塞非阻塞。

  阻塞就是CPU在完成任务A之前不进行其他任务,非阻塞就是CPU在做A任务的同时也在做B任务。阻塞能保证任务的优先级次序不被打乱,非阻塞能更大的提升CPU的利用率。

 

3组合方式。

  同步阻塞:最安全最常用,性能最差,最简单。

  同步非阻塞:提升了IO性能,但是增加CPU消耗,需要考虑CPU的消耗是瓶颈还是IO的性能是瓶颈进行取舍。

  异步阻塞:分布式数据库经常用到能明显提升IO效率。

  异步非阻塞:IO性能最高,但是处理起来非常繁杂。

posted @ 2018-07-29 21:50  酒皇  阅读(157)  评论(0编辑  收藏  举报