相信很多人都会弄混这些概念,甚至记了之后又容易忘记,其实就是没有深入了解。虽然其他的博客有举一些水壶啊,狗啊等例子,但是还是模糊不清,看看我这个能不能把你弄懂。 本文重在分清楚4者的概念,并没有深入的去讲解,因为其他博客已经说的很多了。

这里先给你一个概念:同步异步是个操作方式,阻塞非阻塞是线程的一种状态。

同步 :一个功能调用时,没有得到结果之前,就不会返回,可以说是一种操作方式。
参考线程同步,我访问这个临界区时,你就不能访问。也可看做是单线程操作,在调用没有返回之前一直阻塞。
异步: 调用发出后,不能立即得到结果,是在完成后再返回通知调用者。
参考 服务器可以把客户端请求放在线程让它自己跑,然后主线程可以干其他事。

这里同步异步我们把它们分成2种情况,一种是线程方面的,一种是处理方面的。

线程同步就是多个线程访问同一资源,等待资源访问结束。就好像我们多线程写同一个文件需要用互斥锁一样。
线程异步就是在访问资源的同时访问其他资源,实现多线程机制。
同步处理就是你问我问题我自己花时间算好了在回答你。(即线程等待调用的函数把数据全部处理完成才返回)
异步处理就是你问我,我叫别人算好答案告诉我,(若我什么都不做光等待计算结果就是阻塞,我做其他事情就是非阻塞)。( 即新开一个线程把该函数给另一个线程处理,主线程可以一直(以阻塞非阻塞形式)获取处理完成的值)。
简单来说就是一根筋两根筋的事,也就是对一件事情的处理方式。
------------------------- ------------------------- -------------------------
阻塞: 调用结果返回前,线程挂起。
参考互斥锁,信号量的sem_wait。
非阻塞: 调用不会阻塞线程,而且立即返回。
参考 信号量的try_wait。
------------------------

同步与阻塞、非阻塞

同步是个处理方式,操作方式、手段,阻塞是线程的一种状态,两者并不相同也并不冲突。同步操作防止多线程访问临界区,后进入临界区的线程将被阻塞。
~~~~然而 线程同步一定产生阻塞吗?不,同步可以使用非阻塞模型,当临界区不可读,调用则返回,先去做别的事,又再访问临界区,一直重复。而 同步处理则是定会阻塞。
异步与阻塞、非阻塞
异步阻塞,就是别人问我问题,我叫了另一个人帮我算,而我就等着那个人帮我算好告诉我(相当于我开了一个线程计算,而主线程阻塞等待线程计算结果的返回,而不做任何事,这是不是蠢,还不如自己算,还节省开线程的资源)。
异步非阻塞就是别人问我问题,我叫另外一个人帮我回答,而我可以做其他的事情了,等他算好了告诉我。
如果讲解不对的,或者还有模糊的地方,欢迎在评论区互相探讨。

就是要弄懂你之—— 同步 异步 阻塞 非阻塞相关推荐

  1. 异步通知是什么意思_一次相亲经历,我彻底搞懂了阻塞非阻塞、同步异步

    看到标题,可能你会想,相亲跟阻塞/非阻塞,同步/异步有啥关系,这个逗b不知道在想什么东西.不要急,且听我慢慢道来 年纪大了,一回家七大姑八大姨就各种催婚,都说要给我介绍女朋友.这不,刚刚门口,我的大姨 ...

  2. 异步和同步区别是什么_一次相亲经历,我彻底搞懂了什么叫阻塞非阻塞,同步异步...

    "看到标题,可能你会想,相亲跟阻塞/非阻塞,同步/异步有啥关系,这个逗b不知道在想什么东西.不要急,且听我慢慢道来 年纪大了,一回家七大姑八大姨就各种催婚,都说要给我介绍女朋友.这不,刚刚门 ...

  3. 大白话搞懂什么是同步/异步/阻塞/非阻塞

    前言 在最近的一些面试中,跟应聘者聊了比较多关于"同步/异步,阻塞/非阻塞"相关的话题,发现大家对于这些概念的理解都比较模糊,甚至有的同学会反问"他们不就是同一个东西吗? ...

  4. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!

    作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...

  5. java 异步阻塞_大白话搞懂什么是同步/异步/阻塞/非阻塞

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前言 在最近的一些面试中,跟应聘者聊了比较多关于"同步/异步,阻塞/非阻塞"相关的话题,发现大家对于这些概念的理解都比较模糊,甚至有的 ...

  6. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行

    基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程 ...

  7. 一文搞懂同步异步阻塞非阻塞

    相信很多人在面试的过程中,都被问到过同步和异步的区别.阻塞和非阻塞的区别,以及这两对关系又有什么联系?本文尽可能从专业的角度,用易懂的语言,帮助大家理解 01 前置知识 用户空间和内核空间 操作系统可 ...

  8. 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...

    网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数 ...

  9. Socket 同步/异步 与阻塞/非阻塞区别

    2019独角兽企业重金招聘Python工程师标准>>> 在网上看了很多答案,也没找到合适的,也许本文也不是合适答案:) 同步和异步关注的是消息通信机制,而阻塞非阻塞关注的是程序在等待 ...

最新文章

  1. command对象提供的3个execute方法是_21个极大提高开发效率的VS Code快捷键
  2. Android版本dp,Android中sp和dp区别
  3. MyBatis基本配置和实践(三)
  4. window 下的mysql_Windows下MySQL下载安装、配置与使用
  5. 前端学习(1291):nodejs的系统模块文件读取操作
  6. Python获取本机所有IP地址
  7. leetcode刷题之 两数之和
  8. C++如何生成随机数
  9. 三大抽样分布——卡方分布、t分布、F分布
  10. cobar mysql 性能_Cobar
  11. 重磅!2022国家杰青,硕博校友统计出炉
  12. 选择模型 _ 审查回归算法
  13. Springboot面向全球电子商城系统3v50f计算机毕业设计-课程设计-期末作业-毕设程序代做
  14. BloomFilter原理学习
  15. yarn create umi 报错问题
  16. linux中execve函数的用法
  17. 最近 Github 上爆火的 Chrome 生产力神器 Omni 是什么鬼?
  18. 医院信息集成平台现状总结
  19. Idea报错[Cannot access com.xxx] 的 [解决办法]
  20. 积极重返中国的谷歌,这次瞄准了AI入口

热门文章

  1. mysql订单迁移es_京东到家订单中心系统mysql到es的转化之路
  2. MOSES系统训练中间过程和意义详解
  3. SQL注入之布尔型盲注
  4. 组合数学与计算机科学书籍,计算机科学丛书:组合数学(原书第5版)
  5. 不要一个人吃饭---人脉就是钱脉
  6. QWebEngineView 实现网页触屏滑动
  7. 关于pytorch等环境配置记录
  8. 阿里云ECS服务器内存一直居高不下,被挂木马解决方法
  9. 参考文献为外文文献时应该采用什么格式啊?
  10. 扫地机器人的技术升级之路 自主规划清扫成主流