![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f9110f80da177e2c4ee741df0c0c85d7.jpeg)
同步(等待)
同步调用者必须在方法调用结果返回后才能执行后续操作
异步(不用等待)
同步调用者不用在等待方法调用结果返回才能执行后续操作
并发和并行
两者都能表示多个任务一起执行,但是并发偏向于任务交替执行,多个任务之间有可能是串行执行的。严格来说,并发并不能算是多个任务一起执行,只是在多个任务之间交替执行。
阻塞和非阻塞
在了解阻塞和非阻塞之前,需要了解一下什么是临界区。
临界区
所代表的是一种公共资源或者共享资源,任何线程都能拿到该临界区的资源,但是一旦有线程拿到该资源,就会被锁定,类似于Synchronized,只有当前线程处理完成之后,别的线程才能拿到该临界区资源。
阻塞
当一个线程获取了临界区资源之后,别的线程要想获取临界区资源,就必须要等待,等待就会导致挂起,这种情况就是阻塞。
非阻塞
与阻塞相反,没有一个线程可以阻碍其他线程的执行