zoukankan      html  css  js  c++  java
  • Windows编程--线程的睡眠方式


    线程也能告诉系统,它不想在某个时间段内被调度。这是通过调用Sleep函数来实现的:

    VOID Sleep(DWORDdwMilliseconds);

    该函数可使线程暂停自己的运行,直到dwMilliseconds过去为止。关于Sleep函数。

    有下面几个重要问题值得注意:

    1、调用Sleep,可使线程自愿放弃它剩余的时间片

    2、系统将在大约的指定毫秒数内使线程不可调度。如果告诉系统,想睡眠100ms,那么可以睡眠大约这么长时间,但是也可能睡眠数秒钟或者数分钟。记住, Windows不是个实时操作系统。虽然线程可能在规定的时间被唤醒,但是它能否做到,取决于系统中还有什么操作正在进行。

    3、可以调用Sleep,并且为dwMilliseconds参数传递INFINITE这将告诉系统永远不要调度该线程这不是一件值得去做的事情。最好是让线程退出,并还原它的堆栈和内核对象

    4、可以将0传递给Sleep。调用线程将释放剩余的时间片,并迫使系统调度另一个线程。但是,系统可以对刚刚调用Sleep的线程重新调度。如果不存在多个拥有相同优先级的可调度线程,就会出现这种情况。

    FangSH 2010-12-28

  • 相关阅读:
    统计数据库表中记录数
    在水晶报表中写一个条件判断语句
    数据库范式
    动态控件的新思路
    连续打印问题的解决
    水晶报表中测试纸张的margins
    向报表中传递参数
    JS实现页面跳转
    在dos下访问ntfs
    时间和字符混合处理
  • 原文地址:https://www.cnblogs.com/fangshenghui/p/1926331.html
Copyright © 2011-2022 走看看