`
talentluke
  • 浏览: 604730 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

同步阻塞和异步阻塞

 
阅读更多

 假设现在办公室开会,就缺一个人了,在他没有来的时候,大家都在聊天。如果这个人不来,会议就没法召开,这就是阻塞。会议这个线程就被挂起了。这时,我们可以继续聊天这个线程,或者再开一个打牌的线程,但是我们不聊天、打牌,非要等到你来再开会,这是同步阻塞。如果我们边聊天、打牌,边等你来了再开会,这是异步阻塞。
  还是假设现在办公室开会,就缺你一个人了。如果你不来,会议照常可以进行,这就是非阻塞。尽管你不来,会议可以照常进行,这时我们也可以聊天打牌,但是我们没有聊天打牌,非要等你来才开会这就是同步非阻塞,如果你还没有来,我们就开会了,等你来了,再征求你的意见,这就是异步非阻塞,当然在开会的同时我们可能还在聊天或者打牌。
  基于这样的理解,如果是阻塞的话,当前阻塞的线程肯定会被挂起同步和异步只是针对其他线程而言的,如果其他线程一直再等该线程,那么就是同步阻塞,如果其他线程不等该线程继续或者开始执行,那么就是异步阻塞。
  如果是非阻塞的话,当前线程不会被挂起,只是某个函数调用没有返回,尽管其他线程或者本线程内其他函数可以不等这个函数返回继续执行,但是如果其他线程或本线程的其他函数非要等该函数返回,那么就是同步非阻塞。如果其他线程或者本线程的其他函数没有等该函数返回就继续执行,那么就是异步非阻塞。

分享到:
评论
1 楼 denger 2013-04-07  
我觉得应该不存在“异步阻塞”的说法,既然可以异步进行了,那么应该肯定是没有被阻塞的,因为只有没有被阻塞的情况下,你才能异步去做别的事。


引用
如果我们边聊天、打牌,边等你来了再开会,这是异步阻塞。

从线程的角度来说,既然,你们可以去聊天、打牌说明已经是没有阻塞了,否则被阻塞的话你是不可能去干别的事情的。

相关推荐

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

    在计算机编程和系统设计中,异步、同步、阻塞和非阻塞是四个非常重要的概念,它们关乎程序执行效率和资源管理。以下是对这些概念的详细解释。 **同步与异步** 同步(Synchronous)是指一个进程或线程在等待另一个...

    同步异步阻塞非阻塞

    同步异步阻塞非阻塞 IO 模型 在 Linux 环境下的网络 IO 中,有五种基本的 IO 模型:阻塞 IO、非阻塞 IO、IO 多路复用、信号驱动 IO 和异步 IO。其中,信号驱动 IO 不常用,因此主要介绍其余四种 IO 模型。 1. 阻塞...

    IO中同步、异步与阻塞、非阻塞的区别

    在实际应用中,同步和异步关注的是通知消息的机制,而阻塞与非阻塞关注的是程序等待消息时的状态。同步和异步决定了调用者是等待函数返回结果,还是继续执行其他操作。阻塞与非阻塞则决定了调用者是否在等待过程中...

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

    1. **同步阻塞**:最常见的组合之一,适用于简单且对实时性要求不高的应用场景。例如,使用阻塞式的方法读取文件或数据库查询。 2. **同步非阻塞**:虽然听起来有些矛盾,但实际上可以通过一些技术手段实现。例如,...

    tcp socket同步 异步 阻塞 非阻塞 的解释.zip

    tcp socket同步 异步 阻塞 非阻塞 的解释.zip 基本概念:同步、异步、阻塞和非阻塞的区别 同步异步与阻塞非阻塞的区别 C++ 同步异步与阻塞非阻塞的区别

    详解socket阻塞与非阻塞,同步与异步、I/O模型

    同步和异步只关注客户端的调用机制,而阻塞和非阻塞则关乎服务端的处理方式。同步与异步的区分并不依赖于阻塞或非阻塞,它们可以结合使用。例如,客户端可以发起异步请求,然后服务端处理请求时可能采用阻塞或非阻塞...

    C#TCP/IP同步和异步通信

    本文将深入探讨如何在C#编程环境中实现TCP/IP的同步和异步通信,并结合提供的“WindowsInternetServer”压缩包文件,讲解如何封装这两种通信方式。 首先,TCP/IP同步通信是指在发送数据前,必须等待接收方确认接收...

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

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

    asic同步复位和异步复位比较

    同步复位和异步复位是两种常见的复位类型,它们各有特点,适用于不同的应用场景。以下是对这两种复位方式的详细比较: ### 1. 同步复位(Synchronous Reset) **定义**:同步复位是一种与系统时钟同步的复位方式,...

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

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

    同步方法和异步方法比较

    在编程领域,同步和异步方法是处理任务执行方式的两种基本模式,它们在系统设计和性能优化中扮演着至关重要的角色。理解这两者的区别及其优缺点对于开发高效的应用至关重要。 **同步方法**指的是调用一个函数或方法...

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

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

    聊聊同步、异步、阻塞与非阻塞.docx

    同理,同步也会有两种实现:同步阻塞、同步非阻塞。 阻塞与非阻塞的比较 阻塞和非阻塞是从程序(线程)等待消息通知时的状态角度来说的。阻塞是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不...

    同步执行和异步执行学习Demo

    在编程领域,同步执行与异步执行是两种不同的任务处理方式,它们关乎程序的执行效率和用户体验。同步执行和异步执行是理解并发编程和多线程编程的关键概念。 **同步执行** 是一种线性、顺序的执行模式。在同步执行...

    C# 同步与异步读写

    在编程领域,尤其是在高性能和高并发的场景下,理解和掌握同步与异步读写是非常关键的。C#作为微软开发的面向对象的编程语言,提供了丰富的API和特性来支持这两种操作模式。本篇文章将深入探讨C#中的同步与异步读写...

    Angular异步变同步处理方法

    由于异步操作的特性,它能处理那些按顺序依次执行的接口调用,而不会阻塞主线程,让页面陷入假死状态。在Angular中,主要通过Promise规范来实现异步变同步的处理。 首先,异步编程是JavaScript的核心特征之一,它...

    C#同步调用,异步调用,异步回调.docx

    C# 同步调用、异步调用和异步回调详解 在 C# 编程中,调用方法可以分为同步调用和异步调用两种。同步调用是指当前线程阻塞,等待方法执行完毕后继续执行,而异步调用则是将方法调用交给线程池,当前线程继续执行不...

    Nodejs让异步变成同步的方法

    Node.js中让异步操作变成同步的方法通常是指将非阻塞的异步调用改写为在逻辑上表现得像同步调用的方式。Node.js中异步操作是通过回调函数、Promises和async/await等技术来实现的。以下我们详细讲解如何通过这些方法...

    同步、异步、阻塞和非阻塞的概念

    在计算机编程,特别是网络编程中,同步、异步、阻塞和非阻塞是四个关键的概念,它们描述了程序执行时处理任务的方式。 同步是一种调用模式,它要求调用者在等待结果返回之前不能继续执行其他任务。例如,当你调用`...

    C# socket同步和异步通信示例

    本示例主要探讨了C#中Socket的同步和异步通信方式,这对于开发网络应用,尤其是服务端和客户端之间的数据交换至关重要。下面将详细解释这两种通信方式以及它们的应用场景。 1. **同步通信**: 同步通信是指发送方...

Global site tag (gtag.js) - Google Analytics