#pragma once
#include "ComHead.h"
DWORD g_UseTLS;
void InitStartTime()
{
DWORD dwStart = GetTickCount();
TlsSetValue(g_UseTLS, (LPVOID)(dwStart));
}
void PrintUseTime()
{
DWORD dwEnd = GetTickCount();
char PrintString[256] = {0};
sprintf_s(PrintString, "ThreadId: %d, UseTime: %d\r\n", GetCurrentThreadId(), dwEnd - (DWORD)TlsGetValue(g_UseTLS));
cout << PrintString;
}
UINT _stdcall Threadproc(LPVOID lparam)
{
InitStartTime();
int i = 1000 * 10000;
while (--i)
{
}
PrintUseTime();
return 0;
}
void UseThreadTLS()
{
HANDLE h_Array[10] = { 0 };
UINT ThreadID;
for (int i = 0; i < 10; ++i)
{
h_Array[i] = (HANDLE)_beginthreadex(nullptr, 0, Threadproc, nullptr, 0, &ThreadID);
}
WaitForMultipleObjects(10, h_Array, TRUE, INFINITE);
for (int i = 0; i < 10; ++i)
{
CloseHandle(h_Array[i]);
}
}
线程局部存储TLS
猜你喜欢
转载自blog.csdn.net/Ellis1993/article/details/90745123
今日推荐
周排行