现在用C++实现多线程已经不是难事。但是,在控制台应用中实现多线程时,各线程的输出控制就是一个问题,如果处理不好,由于线程的CPU资源是抢占式的,输出会乱七八糟。对此,我们可以使用条件循环来控制,一下给出一个例子,找到两个范围内能被2,3,5,7整除的数。
#include<iostream>
#include<Windows.h>
using namespace std;
UINT FoundFlag = 0;//全局标志,如果找到符合条件的数,改变FLAG的值以通知线程暂停
UINT StopFlag = 0;//运行终止标志,防止主线程的“请按任意键继续...”出现在输出中
bool IsStrange(int i)
{
if (i % 2 == 0 && i % 3 == 0 && i % 5 == 0</