找回密码
 立即注册
查看: 318|回复: 15

同样是阻塞延时,不同人的理解是相反的?一度让我迷惑不解

[复制链接]
  • TA的每日心情
    奋斗
    昨天 08:17
  • 签到天数: 168 天

    [LV.7]常住居民III

    116

    主题

    474

    回帖

    620

    积分

    高级会员

    积分
    620
    发表于 2024-3-8 10:34:55 | 显示全部楼层 |阅读模式
    对于阻塞延时和非阻塞延时,大家都是怎么理解的,
    多线程阻塞延时.png
    阻塞延时和非阻塞延时.png
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-5 08:35
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2140

    积分

    荣誉版主

    积分
    2140
    发表于 2024-3-8 10:54:37 | 显示全部楼层
    本帖最后由 gentleman 于 2024-3-8 11:36 编辑


    关于二者对 阻塞延时的描述
    就像 函数名 可以都是 delay()
    函数内部 却不同


    前者是针对操作系统中 的阻塞状态
    一般调用操作系统提供的延时函数实现,进入阻塞状态
    实际是将任务 从任务就绪链表移除
                        移入任务阻塞链表
                cpu  依旧会从任务就绪链表取出任务运行
    等待延时时间过后
                        再移回任务就绪链表 等待cpu进行调度


    后者的描述是裸机中的常用的死延时,一些_nop_ 等空指令






    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 06:35
  • 签到天数: 171 天

    [LV.7]常住居民III

    26

    主题

    821

    回帖

    2060

    积分

    金牌会员

    积分
    2060
    发表于 2024-3-8 11:02:21 | 显示全部楼层
    非阻塞延时一般需要状态机来实现,裸机一般建议使用非阻塞延时
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 11:17
  • 签到天数: 121 天

    [LV.7]常住居民III

    33

    主题

    397

    回帖

    2040

    积分

    荣誉版主

    积分
    2040
    发表于 2024-3-8 11:03:01 | 显示全部楼层
    堵塞就是cpu啥也不干被卡住了
    非堵塞就是延时的时候cpu跑去干别的的了。等延时时间到了再回来干活
    实现上,堵塞一般是让cpu做无意义自加或者自减进行延时
    非堵塞可以用多线程,软定时器,程序循环计数等方式实现
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 08:42
  • 签到天数: 142 天

    [LV.7]常住居民III

    20

    主题

    1086

    回帖

    2585

    积分

    金牌会员

    积分
    2585
    发表于 2024-3-8 11:42:27 | 显示全部楼层
    两者说的一个有系统 一个裸机  
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:17
  • 签到天数: 168 天

    [LV.7]常住居民III

    116

    主题

    474

    回帖

    620

    积分

    高级会员

    积分
    620
     楼主| 发表于 2024-3-8 13:09:33 | 显示全部楼层
    gentleman 发表于 2024-3-8 10:54
    关于二者对 阻塞延时的描述
    就像 函数名 可以都是 delay()
    函数内部 却不同

    我一直是第二种理解,而第一种理解,也是接触了系统后,才开始看到大家这么说,是不是可以统一起来,有时也感觉是裸机和系统的叫法不同,有时,也感觉不是,可以统一成第二种理解;
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:17
  • 签到天数: 168 天

    [LV.7]常住居民III

    116

    主题

    474

    回帖

    620

    积分

    高级会员

    积分
    620
     楼主| 发表于 2024-3-8 13:10:09 | 显示全部楼层
    jwd 发表于 2024-3-8 11:02
    非阻塞延时一般需要状态机来实现,裸机一般建议使用非阻塞延时

    是的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:17
  • 签到天数: 168 天

    [LV.7]常住居民III

    116

    主题

    474

    回帖

    620

    积分

    高级会员

    积分
    620
     楼主| 发表于 2024-3-8 13:10:46 | 显示全部楼层
    _奶咖君_ 发表于 2024-3-8 11:42
    两者说的一个有系统 一个裸机

    有时,我也这么理解,
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 83 天

    [LV.6]常住居民II

    12

    主题

    463

    回帖

    1342

    积分

    荣誉版主

    积分
    1342
    发表于 2024-3-8 13:14:17 | 显示全部楼层
    拉粑粑算个流程的话.

    阻塞:抽根烟,憋着,抽完拉
    非阻塞:抽烟,同时拉一会吧.
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:17
  • 签到天数: 168 天

    [LV.7]常住居民III

    116

    主题

    474

    回帖

    620

    积分

    高级会员

    积分
    620
     楼主| 发表于 2024-3-8 13:19:15 | 显示全部楼层
    xiangzichen 发表于 2024-3-8 13:14
    拉粑粑算个流程的话.

    阻塞:抽根烟,憋着,抽完拉

    通俗易懂,接地气。
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-18 04:57 , Processed in 0.071034 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表