`
墙头上一根草
  • 浏览: 154053 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 同步异步 阻塞非阻塞

    博客分类:
  • java
阅读更多

同步异步 阻塞非阻塞

 

  按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用(select/poll/epoll)、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO

 

  如何理解这几个概念,我个人来言,可以从java线程的角度去分析。现在有件事情,我要去图书馆借书,那我本人就是一个线程,借书是个事件,假如借书这个事件要花好长时间,比如管理员找书拿书,那线程就只能等到拿到书,才能做别的事情,这个就是同步但是线程一直在运算不能说是阻塞。假如恰好这个时候图书馆有其他人再借书,然后图书管理员给我说你等会,那对于线程来说,就好比调用了wait一直在等待,这个就是阻塞,线程阻塞在借书这个事情上。我去,借个书你还让我在这里等一天,这不是浪费我的青春年华嘛,于是乎给管理员留个电话号码,找到叫我,而我这个线程可以去做别的事情,这个时候好比管理员是一个线程,我是一个线程,我在管理员上面注册了一个事件,这个就是一种设计模式,现在借书这个事情就分两步了,一个是注册借书事件,一个是处理事件,所以是异步完成的,同时我这个线程可以不用在挂起,也就是非阻塞的。

 

    同步与异步  简单的理解分几个线程,一个线程肯定是同步的

    阻塞与非阻塞  简单理解线程调用是否被挂起或等待

分享到:
评论

相关推荐

    java 同步、异步、阻塞和非阻塞分析.docx

    Java 同步、异步、阻塞和非阻塞分析 Java 中的同步、异步、阻塞和非阻塞是四个相关但不同的概念,它们都是在多线程编程中解决耗时操作的方法。在这里,我们将详细介绍这些概念之间的区别和联系。 同步...

    java 中同步、异步、阻塞和非阻塞区别详解

    在Java编程中,同步、异步、阻塞和非阻塞是四个重要的概念,它们涉及到多线程和并发处理,特别是在网络编程中尤为关键。理解这些概念有助于优化程序性能和提高资源利用率。 1. **同步**: 同步是编程中一种控制机制...

    简述JAVA同步、异步、阻塞和非阻塞之间的区别

    今天,我们将详细介绍JAVA同步、异步、阻塞和非阻塞之间的区别。 同步和异步 同步和异步描述的是消息通信的机制。同步是指当一个request发送出去以后,会得到一个response,这整个过程就是一个同步调用的过程。...

    JAVA语言异步非阻塞设计模式.docx

    【Java语言异步非阻塞设计模式】 异步非阻塞设计模式是现代软件开发中提高性能的关键技术,尤其在处理I/O密集型任务时,它能显著提升系统的并发能力和资源利用率。在这种模型中,系统在发起耗时操作后不会等待结果...

    异步 同步 阻塞 非阻塞 的说明1

    在IT领域,尤其是在多线程和并发编程中,同步、异步、阻塞和非阻塞是四个非常关键的概念。这些概念通常与操作系统、网络I/O、数据库操作以及Java等编程语言中的线程管理紧密相关。现在让我们逐一深入探讨它们的含义...

    java 同步、异步、阻塞和非阻塞分析

    在Java编程中,理解和掌握同步、异步、阻塞和非阻塞的概念至关重要,因为它们直接影响着程序的性能和资源利用率。下面将详细阐述这些概念以及如何在实际开发中应用。 首先,同步和异步是关于任务执行顺序的两个概念...

    Java异步调用转同步方法实例详解

    异步调用是一种非阻塞的调用方式,调用方在调用过程中,不直接等待返回结果,而是执行其他任务,结果返回形式通常为回调函数。SYNC调用是指调用方在调用过程中,持续等待返回结果。Java中将异步调用转换为同步调用有...

    javaHttp异步请求

    5. **NIO(非阻塞I/O)**: Java的`HttpAsyncClient`依赖于Java NIO(非阻塞I/O)来实现异步操作。NIO允许单个线程处理多个连接,显著提高了系统资源的利用率。 6. **线程池**: `HttpAsyncClient`通常会使用线程池来...

    JAVA IO同步,异步

    在本文中,我们将讨论基于系统底层通信技术Socket 的JAVA IO同步和异步操作,包括阻塞(Blocking)和非阻塞(Non-Blocking)IO 操作。 同步(Synchronous)IO 同步IO 是指应用程序在执行IO 操作时,需要等待IO ...

    网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO

    这里我们将深入探讨同步IO、异步IO、阻塞IO和非阻塞IO的概念,理解它们的工作原理以及在实际应用中的差异。 1. 同步IO与异步IO: - **同步IO**:在同步模式下,应用程序执行I/O操作时会等待操作完成。这意味着程序...

    Java实现异步调用

    Java的非阻塞I/O模型,如`java.nio`包,允许在等待I/O操作时释放CPU资源。配合`Selector`和`Channel`,可以高效处理多个输入/输出流,尤其适用于高并发的网络应用。 8. **异步库与框架** 除了标准库,还有一些第...

    java异步server

    Java异步服务器是一种高效处理多个客户端连接的技术,它与传统的同步服务器模型相比,具有更高的并发性和资源利用率。在Java中实现异步服务器,通常会利用NIO(Non-blocking Input/Output)或者Java 7引入的AIO...

    使用Java语言开发,站在巨人肩膀上制作了异步非阻塞的IM解决一台服务器可解决http、websocket、tcp(可以私有定制

    本项目“站在巨人肩膀上制作了异步非阻塞的IM”充分利用了Java的优势,构建了一个高效、灵活的多协议通讯解决方案。 首先,异步非阻塞编程模型是现代高性能网络应用的核心。传统的同步阻塞模型在处理高并发时容易...

    java实现HttpClient异步请求资源的方法

    HttpClient库通过提供非阻塞I/O(NIO)支持实现了异步请求。 以下是一个使用HttpClient进行异步请求的Java示例: ```java import java.util.concurrent.CountDownLatch; import org.apache.http.HttpResponse; ...

    网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO.pdf

    同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non...

    Java多线程实现异步调用实例

    “异步”标签则涉及到了程序设计中的非阻塞特性,有助于提升系统的并发能力和响应性。Java 8引入的CompletableFuture提供了一种更高级的异步编程模型,支持链式调用和组合多个异步任务。 总之,Java多线程和异步...

    java android业务异步编程小技巧

    在Android应用开发中,异步编程是至关重要的,它能够帮助我们解决主线程阻塞问题,提高用户体验。本文将深入探讨Java和Android平台上的异步编程小技巧,并以"android业务异步编程小技巧.zip"和"java业务异步编程小...

    异步redis + java源码

    异步Redis通信模式主要利用非阻塞I/O(Non-blocking I/O)来提高应用性能,特别是处理大量并发请求时。这种模式下,客户端并不等待服务器的响应,而是立即返回并继续执行其他任务,当服务器完成操作并准备返回结果时...

    Socket客户端,服务端同步异步实现

    客户端异步主要体现在非阻塞I/O操作上。在发送请求后,客户端可以立即进行其他操作,而不是等待服务器的响应。当服务器返回数据时,通常会通过事件驱动(如回调函数或观察者模式)来通知客户端。这种方式提高了...

    基于Java非阻塞IO技术实现石头剪刀布游戏设计。.zip

    在Java编程领域,非阻塞I/O(Non-blocking I/O)技术是一种提高应用程序性能和并发能力的重要手段。在这个“基于Java非阻塞IO技术实现石头剪刀布游戏设计”的项目中,开发者利用了Java NIO(New IO)库来创建一个...

Global site tag (gtag.js) - Google Analytics