JAVA中同步、异步、阻塞和非阻塞有何本质差异?

2026-05-24 05:150阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计1245个文字,预计阅读时间需要5分钟。

JAVA中同步、异步、阻塞和非阻塞有何本质差异?

同步和异步,阻塞和非阻塞,是大家经常听到的概念,但它们实际上是来自不同维度来描述一件事情。很容易混为一谈。

1. 同步和异步同步和异步描述的是消息通信的机制。同步:当一个操作需要等待另一个操作完成后再继续执行时,我们称之为同步。异步:当一个操作不需要等待另一个操作完成就可以继续执行时,我们称之为异步。

2. 阻塞和非阻塞阻塞和非阻塞描述的是操作对线程的影响。阻塞:当一个操作需要等待某个条件成立时,线程会暂停执行,直到条件成立。非阻塞:当一个操作需要等待某个条件成立时,线程不会暂停执行,而是继续执行其他任务。

同步和异步,阻塞和非阻塞是大家经常会听到的概念,但是它们是从不同维度来描述一件事情,常常很容易混为一谈。

1. 同步和异步

同步和异步描述的是消息通信的机制。

同步

当一个request发送出去以后,会得到一个response,这整个过程就是一个同步调用的过程。哪怕response为空,或者response的返回特别快,但是针对这一次请求而言就是一个同步的调用。

异步

当一个request发送出去以后,没有得到想要的response,而是通过后面的callback、状态或者通知的方式获得结果。可以这么理解,对于异步请求分两步:

1)调用方发送request没有返回对应的response(可能是一个空的response);

2)服务提供方将response处理完成以后通过callback的方式通知调用方。

对于1)而言是同步操作(调用方请求服务方),对于2)而言也是同步操作(服务方回掉调用方)。

阅读全文

本文共计1245个文字,预计阅读时间需要5分钟。

JAVA中同步、异步、阻塞和非阻塞有何本质差异?

同步和异步,阻塞和非阻塞,是大家经常听到的概念,但它们实际上是来自不同维度来描述一件事情。很容易混为一谈。

1. 同步和异步同步和异步描述的是消息通信的机制。同步:当一个操作需要等待另一个操作完成后再继续执行时,我们称之为同步。异步:当一个操作不需要等待另一个操作完成就可以继续执行时,我们称之为异步。

2. 阻塞和非阻塞阻塞和非阻塞描述的是操作对线程的影响。阻塞:当一个操作需要等待某个条件成立时,线程会暂停执行,直到条件成立。非阻塞:当一个操作需要等待某个条件成立时,线程不会暂停执行,而是继续执行其他任务。

同步和异步,阻塞和非阻塞是大家经常会听到的概念,但是它们是从不同维度来描述一件事情,常常很容易混为一谈。

1. 同步和异步

同步和异步描述的是消息通信的机制。

同步

当一个request发送出去以后,会得到一个response,这整个过程就是一个同步调用的过程。哪怕response为空,或者response的返回特别快,但是针对这一次请求而言就是一个同步的调用。

异步

当一个request发送出去以后,没有得到想要的response,而是通过后面的callback、状态或者通知的方式获得结果。可以这么理解,对于异步请求分两步:

1)调用方发送request没有返回对应的response(可能是一个空的response);

2)服务提供方将response处理完成以后通过callback的方式通知调用方。

对于1)而言是同步操作(调用方请求服务方),对于2)而言也是同步操作(服务方回掉调用方)。

阅读全文