等待是线程常常需要做的事情。当你读取用户的输入,或是存取磁盘文件时,你的线程必须等待因为磁盘存取速度和用户输入动作的速度是CPU速度的百万(甚至)分之一。等待是线程的一种必要之恶。
等待技术:
1.Win32 Sleep()函数。这个函数要求操作系统终止线程动作,直到渡过某个指定时间之后才恢复。虽然很简单,但好似实际上你却不可能事先知道什么事情要等待多久。即使一个可以快速完成的工作,也可能需要几分钟---如果有另外一个高优先级的线程正在执行的话。
2.busy loop,使用循环,不断调用GetExitCodeThread()直到其结果不再是STILL_ACTIVE. Busy loop 有时候也被称作busy waits。一个busy loop通常是可依赖的,但是它有重大的缺点:浪费CPU时间。这一点很重要,所以必须在强调一次。绝对不要在Win32中使用busy loop。