阻塞和非阻塞

阻塞与非阻塞的区别
本文探讨了阻塞与非阻塞的概念及其在通信模式中的应用。详细解释了阻塞与非阻塞操作的区别,并进一步说明了同步与异步通信的特点及应用场景。
阻塞与非阻塞。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止。而对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回, 而不会等待。缺省情况下, 三述符处于阻塞状态。
 
同步异步与阻塞和非阻塞是两种不同的概念来着
同步异步指的是通信模式,而阻塞和非阻塞指的是在接收和发送时是否等待动作完成才返回
所以不能混淆这四个磁。
以下是我的一些理解,请大家多指教
首先是通信的同步,主要是指客户端在发送请求后,必须得在服务端有回应后才发送下一个请求。所以这个时候的所有请求将会在服务端得到同步
其次是通信的异步,指客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求,这样对于所有的请求动作来说将会在服务端得到异步,这条请求的链路就象是一个请求队列,所有的动作在这里不会得到同步的。
阻塞和非阻塞只是应用在请求的读取和发送。
在实现过程中,如果服务端是异步的话,客户端也是异步的话,通信效率会很高,但如果服务端在请求的返回时也是返回给请求的链路时,客户端是可以同步的,这种情况下,服务端是兼容同步和异步的。相反,如果客户端是异步而服务端是同步的也不会有问题,只是处理效率低了些。
 
同步=阻塞式,异步=非阻塞式
同步和异步都只针对于本机SOCKET而言的
同步模式下,比如RECIEV和SEND,都要确保收到或发送完才返回,继续执行下面的代码
不然就阻塞在哪里,所以,同步模式下,一般要用到线程来处理。
异步模式就不同了,不管有没有收到或发送出去,他都马上返回,继续执行下面的代码,结果又消息通知。
本次任务为多级菜单(一面显示最多4行) 按键要求共5个按键 第一个第二个按键分别为上一个下一个。第三个按键表 示确认。第4个按键表示返回。第五个按键表示回到初始页面(10分) 在对应界面中要有明确的指示器表示目前按键对应哪一行 任务1 完成初始页面内容显示分别为:主页,恢复出厂设置,版本信息查看。按下 主页会进入下一级菜单,按下恢复出厂设置会让整个单片机回到最初状态。按下 版本信息查看进入自主设计页面(随意设计)。(10分) 任务2 主页内容设计1.小灯状态设置,2时钟查看,3计时器,4.数据发送,5接 收数据查看。(10分) 任务3-1 小灯状态设置内容页 共四行分别显示每个小灯的的状态如 小灯1 亮 小灯2 呼吸 小灯3 灭 小灯4 灭 并且点击具体小灯所在行按下确认键后可设置对应小灯状态 如在小灯1处点击确 认后进入新页面如下   小灯1状态设置 亮 灭 呼吸 设置后能具体表现出来 任务3-2:时钟查看 进入后显示 xx:xx:xx及从上电后开始一直计时分别表示时分 秒 任务3-3 计时器时间设置 可以设置倒数时间页面内容为     XX:XX(表示计时器数值) 开始 暂停 结束 计时时间设置   时间未设置时候默认显示全0设置后若未开始则显示设定值开始后每秒减一 进入计时时间设置后 页面为 XX:XX(表示计时器数值) 分钟设置 秒设置 比如点进秒设置页面后内容为 XX:XX(表示计时器数值) 秒+1 秒-1 当开始后到达计时时间所有小灯闪烁两秒再回到原状态32单片机,c语言编程,头文件名stm32f10x.h,oled是4引脚,按键分别对应pa1,pa0,pc15,pc14pc13,灯泡分别对应pb1,pb0,pa7,pa6,简单且正确,不需要注释,一个主函数搞定。
06-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值