函数多线安全性问题,大家帮我看看

#include
#include
DWORD WINAPI ThreadProc( LPVOID lpParameter);

int main (void)
{
for (BYTE i=0;i<5;i++)
{
DWORD IDThread=0;
HANDLE hThread=CreateThread(NULL,NULL,ThreadProc,(LPVOID)i,NULL,&IDThread);
if (hThread)
CloseHandle(hThread);
}
getchar();
return 0;
}
DWORD WINAPI ThreadProc( LPVOID lpParameter)
{
for (BYTE i=0;i<10;i++)
{
printf("%d---%d---%d---%d\n",lpParameter,lpParameter,lpParameter,lpParameter);
Sleep(1);
}

return true;

}
/*
CPU一次执行一行代码,在main函数中创建了4个线程,调用同一个函数。
在4个线程同时执行的时候,发生CPU时间片切换,在ThreadProc函数中执行的代码可能不一样
我的意思是线程1中的局部变量被改写,不会影响线程2中的局部变量。
那4个线程同时执行一个函数,那这个函数被拷贝到每个线程的内部去执行了?咋感觉理解起来很抽象

*/

查看全部
qq125096885
125096
2015/06/04 14:23
  • 函数多线安全性问题
  • 点赞
  • 收藏
  • 回答
    私信

5个回复