Windows Via C/C++ 读书笔记 4 1. Thread Scheduling, Priorities, and Affinities1.1. 暂停和恢复线程
线程内核对象有一个Suspending计数,每对线程做Suspending操作,该计数加一。
如果该计数不为0,线程不会被执行。
因此要Resume一个线程,必须调用相同次数的Resume操作。
1.2. 暂停和恢复进程
操作系统不提供这样一种方法。作者提供了一个不完美的解决方案:
用CreateToolhelp32Snapshot获取进程的快照信息(包括所有的线程id)
遍历所有的线程,逐个暂停或恢复线程
这么做的问题是,获取进程快照到遍历线程这段时间,可能线程已经被销毁,也可能有新的线程被创建,因此是不可靠的。只有你能保证你的代码不会出现这种情况,才能使用。关键是整个操作不是原子性的,也不能对进程做锁定。
1.3. Sleep
太简单了,不浪费字了1.4. SwitchToThread
相当于阅读全文>
发表于 @ 2009年05月27日 08:44:00|评论(loading...)|举报|收藏