/-CoroutineCode

记录Kotlin协程的编程

CoroutineCode

记录Kotlin协程的编程

同步:是一种行为,发起请求后,或者开启一个任务后,需要等待结果的返回,才会继续向下执行。

异步:当发起请求后,或开启一个任务后,无需等待,继续向下执行,直到结果返回时,再执行对应的代码块(回调)。比如在异步的网络请求中,客户端并没有立即得到服务端的返回结果,所以当服务端计算完后,会有一个响应response发给客户端,客户端执行回调。

阻塞:当客户端请求服务端查询一个数据,发起一个请求线程,服务端会用一个处理线程来处理这个请求,这个处理线程实际去查询数据库时,执行IO操作,那么这个线程就会挂起等待,不会执行其他的操作,直到查询的结果返回。

非阻塞:这个处理线程实际去查询数据库时,执行IO操作,线程不会挂起等待,而会被释放回线程池,处理其他的请求。但是会有一个轮询的检测数据完毕的过程:

image