什么是同步、异步、 阻塞、非阻塞?
直接举例子:
同步、异步
同步异步指的的是做一件事前后的行为是否是同一个执行者;
举例子:
小明去烧开水,水烧开了取出来泡茶。
同步: 小明把这件事执行完成。
异步: 小明只去烧水,烧开后不管了由别人处理。对小明来说是异步。
阻塞、非阻塞
阻塞非阻塞是一件事情的处理方式。
举例子:
小明去烧开水,一直等着水烧开,那么烧水过程就是阻塞的。小明什么都没干。
小明去烧开水,然后去洗杯子,洗茶具不时看看水烧开了吗,烧开水的过程就是非阻塞的。
同步阻塞
小明烧开水,一直傻傻的等水开,然后洗茶杯、茶具,沏杯茶。
同步非阻塞
小明烧开水,然后去洗茶杯、茶具,不时看看水烧开了没,然后水开了沏茶。
异步阻塞
小明烧开水,然后去洗茶杯、茶具,水开了自动的切了茶。小明一直不时还在看开水是否烧好了,茶是否沏好了。
异步非阻塞
小明买了茶具,一打开开关,自动烧开水,洗茶杯,水烧开了自动沏茶,这个期间小明在玩手机。
程序就相当于小明,烧水的壶就相当于OS(kernel)