`

[转]举例说同步异步阻塞非阻塞机制

    博客分类:
  • Java
阅读更多

劫匪冲进某花园小别墅,端着AK47,向某衰男甩过去一个袋子:说,快,把现金拿出来给我放进去,这个时候劫匪一直跟着衰男去装钱,看钱装满了他就拿走,此时劫匪是阻塞 的,因为劫匪不能干其他的,得看着这个衰男,免得他搞鬼。

   想象下,如果劫匪等衰男自己去装钱,在钱装满之前,他自己可以到处翻箱倒柜,找点值钱的首饰黄金之类的,那么这个时候劫匪就是非阻塞 的,因为劫匪并没有阻塞在衰男去装钱这个环节上,劫匪可以自由活动做点其他的小买卖。

      再来回顾下上面的情节,如果劫匪在抢*劫时需要不时自己看看衰男把钱装好了没有,那么此时劫匪是在同步 工作,因为他在等待衰男把钱装好,自己要不停的关注下。

      当然,劫匪可以给衰男说:把钱装好了,你自己过来找我。这个时候劫匪可以继续等着不做其他的事情,也可以去做点其他的事情,但是劫匪可以不用去看衰男是否把钱装好,因为衰男钱装好了会自动通知劫匪:大哥,钱好了,你拿走吧。这个时候劫匪就是异步 在工作,他提供了一个callback机制给衰男。

 

   可以总结下了:

     同步/异步:   消息通知机制相关=>需要自己关注还是提供callback

     阻塞/非阻塞:等待消息时的状态=>是否可以干别的事情

 

可以相互组合:

同步阻塞: 劫匪看着衰男把钱装好,不能干其他事情

同步非阻塞:劫匪自己也到处搜索宝贝,但是还要不时跑回来看看钱装好没有。

异步非阻塞:劫匪自己也到处搜索宝贝,衰男把钱装好了自动过来告诉劫匪好了

异步阻塞:  劫匪就在那里傻等着,也不用管钱是否装好,衰男把钱装好了自动过来告诉劫匪好了 

 

 

转载地址:http://blog.csdn.net/kevinofneu/article/details/39359635

分享到:
评论

相关推荐

    char_step7.rar

    它们通常以非阻塞方式工作,允许内核和应用程序以异步方式处理数据。 1. **驱动注册与注销**: - 注册:驱动程序通过调用`register_chrdev()`函数将字符设备注册到内核。它会分配设备号并关联设备操作结构体,使得...

    JS异步宏队列微队列原理详解

    理解这两个队列的工作原理对于编写高性能、非阻塞的JavaScript代码至关重要。 首先,我们要知道JavaScript引擎在执行代码时会区分同步任务和异步任务。同步任务是按顺序执行的,而异步任务则会被放入到不同的队列中...

    JAVA学习资料及面试题

    7. 讨论Java的NIO(非阻塞I/O)和BIO(阻塞I/O)的优缺点,以及NIO2引入的异步I/O。 8. 介绍Spring框架的核心概念,如依赖注入(DI)和面向切面编程(AOP)。 9. 分析JVM调优策略,如堆大小调整、栈深度优化等。 10....

    java面试宝典花期银行的

    - NIO(非阻塞I/O):缓冲区、选择器、通道的概念及其实现异步I/O的优势。 - BIO(阻塞I/O):传统I/O模型的使用及局限性。 7. **反射** - 反射机制:如何通过反射创建对象、调用方法、访问字段。 - 动态代理:...

    Java面试宝典2013_PDF版.pdf

    Java是当今流行的一种面向对象的编程语言,广泛应用于软件...Lock提供了更灵活的锁定策略,如尝试非阻塞地获取锁等。 55. 设计4个线程,其中两个线程每(具体内容缺失)。 文档未给出具体的任务要求,无法设计线程。

    java常见概念题

    - **异步**则是在某些场景下,当一个线程调用某个耗时较长的方法时,并不希望阻塞当前线程,而是继续执行后续代码。这种方式提高了程序的效率,尤其是在处理网络请求、文件读写等耗时操作时尤为有效。 **应用场景...

    面试题大全

    - **异步**:执行过程是非阻塞的,可以在等待任务完成的同时执行其他代码。 - 示例:网络请求可以采用异步方式处理,以提高程序响应速度。 #### 49. 下面两个方法同步吗?(自己发明) 问题未给出具体代码,无法...

    java面试宝典

    同步和异步有何异同,在什么情况下分别使用他们?举例说明。** - 同步:等待操作完成后再继续执行,适用于需要立即响应的情况。 - 异步:提交任务后立即返回,适用于耗时较长的操作。 **49. 下面两个方法同步吗?...

    Linux高性能服务器编程

    9.2 poll系统调用 9.3 epoll系列系统调用 9.3.1 内核事件表 9.3.2 epoll_wait函数 9.3.3 LT和ET模式 9.3.4 EPOLLONESHOT事件 9.4 三组IO复用函数的比较 9.5 IO复用的高级应用一:非阻塞connect 9.6 IO复用...

    java常见面试题

    同步和异步有何异同,在什么情况下分别使用他们?举例说明。 同步操作意味着在某个任务完成之前,后续任务无法继续执行,例如:线程中的`synchronized`方法。异步操作允许在等待某个任务完成的同时,继续执行其他...

    Java面试宝典

    ### Java面试宝典知识点解析 #### 一、Java基础部分 **1. 一个 ".java" 源文件中是否可以包括多个类(不是内部类...用什么关键字修饰同步方法? stop() 和 suspend() 方法为何不推荐使用?** - 可以通过继承 `Thread...

    java面试题

    - **Static Nested Class**是一种静态内部类,它不需要外部类的实例就可以创建,而且不能访问外部类的非静态成员。 - **Inner Class**(非静态内部类)需要外部类的实例才能创建,可以访问外部类的所有成员,包括...

    Java面试宝典2011版

    ##### 48、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 - **答案**: - 同步:请求发送后必须等待响应完成。 - 异步:请求发送后无需等待响应完成。 - 使用场景:高并发场景下通常使用异步。 ##...

    经典.net常见面试题

    - **异步编程** 使用async/await关键字实现非阻塞IO,提高应用程序的响应速度。 9. **WCF(Windows Communication Foundation)** - **WCF的概念** 用于构建分布式系统的统一框架,支持多种通信协议和服务模型。 ...

Global site tag (gtag.js) - Google Analytics