多线程编程可以提高程序的并发执行能力,那是不是线程越多越好呢?
大家可以参考下面的代码做测试:
#define MAX_WORKTHREAD 5
map<int, int> m_task;//用于统计每个线程做的任务数
std::deque<int> m_MsgQueue;//处理的消息队列
for (i=0; i<MAX_WORKTHREAD; i++)
{
int* nTemp = new int;
*nTemp = i;
hWTHandle[i] = CreateThread(NULL, 0, WorkThread, nTemp, 0, &g_dwWorkThread[i]);
WorkThreadCout ++;
m_task[i] = 0;
Sleep(100);
}
DWORD WINAPI WorkThread(LPVOID lpParam)
{
// cout << "No." << g_dwThreadID << " thread is running." << endl;
while (TRUE)
{
int* nRemp = (int*)lpParam;
int n = -1;
EnterCriticalSection(&g_cs);
//cout << "No " << *nRemp << ", " << g_dwWorkThread[*nRemp] << " thread is running." << endl;
LeaveC