checgg
V2EX  ›  问与答

sleep 函数会使线程(进程)交出 CPU 资源吗?

  •  
  •   checgg · Feb 24, 2018 · 4630 views
    This topic created in 3029 days ago, the information mentioned may be changed or developed.
    6 replies    2018-02-25 09:46:12 +08:00
    vegito2002
        1
    vegito2002  
       Feb 24, 2018
    合理设计的 sleep 是会的
    wevsty
        2
    wevsty  
       Feb 24, 2018   ❤️ 3
    不确定你具体指的是哪个 sleep 函数,所以只能回答你这取决于函数本身和平台的实现。
    以 C 的视角来看。
    Windows 下面你调用 Sleep 这个 API,那么是会交出 CPU 资源的。
    Linux 下面你调用 unistd.h 中的 sleep 函数也是会的。

    但是如果是一门带有协程功能的语言,调用协程库中的 sleep 函数,那么可能线程或者进程并不会交出 CPU 资源,而是转而去处理协程中的其他任务了。
    IvanLi127
        3
    IvanLi127  
       Feb 25, 2018 via Android
    按你的问法我觉得你说的 sleep 会让出 cpu 时间
    iceheart
        4
    iceheart  
       Feb 25, 2018 via Android
    snnn
        5
    snnn  
       Feb 25, 2018 via Android
    必须的
    noe132
        6
    noe132  
       Feb 25, 2018 via Android
    举个例子,某些单片机的 sleep 就是根据晶振频率来空循环一定次数实现的,这种肯定就不会也没法在 sleep 时干别的事
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1495 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 16:55 · PVG 00:55 · LAX 09:55 · JFK 12:55
    ♥ Do have faith in what you're doing.