coding同步异步的时候,知道其中的意思,但是真要用大白话表达时,嘴巴就像灌了铅一样,还是先记录一波,给自己加深下印象
同步异步和阻塞非阻塞
- 同步:调用者(当前线程)主动的等待结果的返回
- 异步:被调用者通过状态或其它来通知调用者(当前线程)有结果的返回
- 阻塞:调用者(当前线程)一直等待结果的返回
- 非阻塞:调用者(当前线程)在得到结果之前,不会一直等待,而是去处理其他的事情
形象的比喻
就拿不太雅的寻坑、蹲坑来比喻,目的就是为了加深印象
- 同步阻塞:等坑位,你(线程)一直盯着该坑位,等的期间不去做其他的事情(阻塞),只要可以用(是否有坑位都是自己去查看—同步),就用坑位(拿到结果执行逻辑)
- 同步非阻塞:等坑位,只要该坑位不可用,期间去做其他的事情(非阻塞),时不时回来看坑位(是否有结果都是自己去查看—同步),有就用坑位(拿到结果执行逻辑)
- 异步阻塞:等坑位,一直盯着该坑位,等的时候不去做其他的事情(阻塞),只要坑位可以用,让使用坑位的同仁通知下你该坑位可用了(异步)
- 异步非阻塞:等坑位,不盯着该坑位,期间去做其他的事情(非阻塞),只要坑位可以用,让使用坑位的同仁通知下你该坑位可用了(异步)