早教吧 育儿知识 作业答案 考试题库 百科 知识分享

1.存在一个整数j=10,设计4个线程,每个线程执行十次循环操作,其中两个线程每次对j增加5,另外两个线程对j每次减少3。写出程序,对j增减的时候不用考虑顺序问题。

题目详情
1.存在一个整数j=10,设计4个线程,每个线程执行十次循环操作,其中两个线程每次对j增加5,另外两个线程对j每次减少3。写出程序,对j增减的时候不用考虑顺序问题。
▼优质解答
答案和解析
#include
#include
int g_iValue = 10;
DWORD WINAPI ThreadProcAdd(LPVOID lpParameter );
DWORD WINAPI ThreadProcSub(LPVOID lpParameter );
void main(int argc, char* argv[])
{
HANDLE hThread[4] = {NULL};
hThread[0] = CreateThread(NULL, 0, ThreadProcAdd, NULL, 0, NULL);
hThread[1] = CreateThread(NULL, 0, ThreadProcAdd, NULL, 0, NULL);
hThread[2] = CreateThread(NULL, 0, ThreadProcSub, NULL, 0, NULL);
hThread[3] = CreateThread(NULL, 0, ThreadProcSub, NULL, 0, NULL);
WaitForMultipleObjects(4, hThread, TRUE, INFINITE);
printf(" 结果 %d\n", g_iValue);
}
DWORD WINAPI ThreadProcAdd(LPVOID lpParameter )
{
for (int i = 0; i < 10; i++)
{
g_iValue += 5;
}
return 0;
}
DWORD WINAPI ThreadProcSub(LPVOID lpParameter )
{
for (int i = 0; i < 10; i++)
{
g_iValue -= 3;
}
return 0;
}
看了 1.存在一个整数j=10,设...的网友还看了以下: