您的当前位置:首页正文

Win32多线程之线程等待

2024-11-20 来源:个人技术集锦

    等待是线程常常需要做的事情。当你读取用户的输入,或是存取磁盘文件时,你的线程必须等待因为磁盘存取速度和用户输入动作的速度是CPU速度的百万(甚至)分之一。等待是线程的一种必要之恶。

    等待技术:

     1.Win32 Sleep()函数。这个函数要求操作系统终止线程动作,直到渡过某个指定时间之后才恢复。虽然很简单,但好似实际上你却不可能事先知道什么事情要等待多久。即使一个可以快速完成的工作,也可能需要几分钟---如果有另外一个高优先级的线程正在执行的话。

     2.busy loop,使用循环,不断调用GetExitCodeThread()直到其结果不再是STILL_ACTIVE. Busy loop 有时候也被称作busy waits。一个busy loop通常是可依赖的,但是它有重大的缺点:浪费CPU时间。这一点很重要,所以必须在强调一次。绝对不要在Win32中使用busy loop。

显示全文