Linux C/C++ or 嵌入式面试之《多进程多线程编程系列》(12) 谈谈并发,同步,异步,互斥,阻塞,非阻塞、五种IO模型

这些概念如果没有事先看过,在面试时可能表述不出来。关于这几个概念网上一直都没有准确的定论,面试官的理解也未必正确,所以被问到这个问题,自求多福吧。
关于IO模型,推荐文章:https

同步

同步指的是在一次同步方法调用开始时,调用者必须主动等待被调用对象返回才能进行下一步操作(但不一定会阻塞,可能是忙等)。

异步

异步指的是在一次方法调用开始,调用者不必等待被调用者返回才能去处理别的事情,而是被调用者主动或者其他方通知调用者被调用对象返回了。

同步和异步根本区别

同步是需要主动等待消息通知,而异步则是被动接收消息通知,通过回调、通知、状态等方式来被动获取消息。

阻塞

表示事情在没有得到返回前,调用者不能去处理其他事情,直到调用返回,才能处理其他事情。

我们所说的 “阻塞”是指进程在发起了一个系统调用(System Call) 后, 由于该系统调用的操作不能立即完成,需要等待资源可用或者条件满足,于是内核将进程挂起为等待(waiting)状态, 以确保它不会被调度执行, 占用 CPU 资源。

阻塞当前进程(线程)会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。

非阻塞

表示调用方不用等待调用返回才能处理其他事情。通常也是指

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值