同步:
A——”我可以执行嘛?”
B——“稍等,我先看看。”
异步:
A——“我可以执行吗?”
B——”还不行,好了我通知你。”
阻塞:
A——“我可以执行吗?不管行不行,我就等着,等到你行为止!”
非阻塞:
A——“我可以执行吗?不行的话,我就先去忙了咯。”
以上已知:
同步/异步:与A无关,关键在于B回应的方式。
阻塞/非阻塞:与B无关,关键在于A如何等结果。
NIO(non-blocking IO)非阻塞IO:
Channel(通道):双向通道,既可以读又可以写,粒度小于线程。
Buffer(缓冲区):通道读写的数据必须进入buffer,以便再次读取。
Selector(选择器):选择器监测有数据的通道,并执行,实现单个线程执行多通道。