龙空技术网

阻塞和非阻塞、同步和异步的区别

博文小火柴 106

前言:

此时小伙伴们对“java中阻塞和非阻塞什么意思”大致比较注意,小伙伴们都想要知道一些“java中阻塞和非阻塞什么意思”的相关文章。那么小编在网摘上汇集了一些有关“java中阻塞和非阻塞什么意思””的相关文章,希望同学们能喜欢,咱们快快来了解一下吧!

阻塞和非阻塞通常用来形容多线程间的相互影响。比如一个线程占用了临界区资源,那么其他所有需要这个资源的线程就必须在这个临界区中等待。等待会导致线程挂起,这种情况就是阻塞。此时,如果占用资源的线程一直不愿意释放资源,那么其他所有阻塞在这个临界区上的线程都不能工作。

非阻塞的意思与之相反,它强调没有一个线程可以妨碍其他线程执行,所有的线程都会尝试不断向前执行。

同步和异步通常用来形容一次方法调用。同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中“真实”地执行。整个过程,不会阻碍调用者的工作。图1.4显示了同步方法调用和异步方法调用的区别。对于调用者来说,异步方法调用似乎是一瞬间就完成的。如果异步方法调用需要返回结果,那么当这个异步方法调用真实完成时,则会通知调用者。

内容摘自《实战Java高并发程序设计(第3版)》,本书适合:所有Java从业人员,所有数据库工程师阅读。

逻辑顺畅。全书脉络清晰,从Java高并发程序的设计基础开始由底层原理落实到具体案例,环环相扣,完整流畅。结构严谨。总体上循序渐进,逐步提升。每一章都各自有鲜明的侧重点,有利于读者快速抓住重点。

实用性强。本书注重实战,采用了理论结合实践的编写方法,给重要的知识点都安排了代码实例,帮助读者在工作中实战应用。

标签: #java中阻塞和非阻塞什么意思