国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++采用TLS線程局部存儲的用法實例

2020-01-26 15:14:58
字體:
來源:轉載
供稿:網友

本文實例講述了C++采用TLS線程局部存儲的用法。分享給大家供大家參考。

具體方法如下:

復制代碼 代碼如下:
// useTLS.cpp : 定義控制臺應用程序的入口點。 
// 
 
#include "stdafx.h" 
#include <Windows.h> 
#include <process.h> 
 
//聲明 
VOID InitStartTime(); 
DWORD GetUserTime(); 
 
//TLS索引,作全局變量  
DWORD  g_dwTlsIndex; 
 
VOID InitStartTime() 

    DWORD dwStartTime = GetTickCount(); 
    ::TlsSetValue(g_dwTlsIndex,(LPVOID)dwStartTime); 

 
DWORD GetUserTime() 

    DWORD dwNowTime = GetTickCount(); 
    DWORD dwStartTime = (DWORD)::TlsGetValue(g_dwTlsIndex); 
    return dwNowTime - dwStartTime; 

 
UINT WINAPI ThreadProc(LPVOID lpParameter) 

    //模擬線程的工作過程 
    DWORD i = 1000 * 1000 *100; 
    while (i--) 
    { 
    } 
    printf("Thread ID:%-5d,Use Time:%d/n",::GetCurrentThreadId(), GetUserTime()); 
    return 0; 

 
int _tmain(int argc, _TCHAR* argv[]) 

    HANDLE hThread[10]; 
    //得到TLS索引 
    g_dwTlsIndex = ::TlsAlloc(); 
    //開啟十個線程,計算每個線程運行的時間 
    for (int i=0;i<10;i++) 
    { 
        hThread[i] = (HANDLE)_beginthreadex(NULL, 0, ThreadProc, NULL, 0, NULL); 
    } 
    //等待工作線程 
    ::WaitForMultipleObjects(10, hThread, TRUE, INFINITE); 
     
    for (int i=0;i<10;i++) 
    { 
        //::WaitForSingleObject(hThread[i], INFINITE); 
        ::CloseHandle(hThread[i]); 
    } 
    //釋放TLS 
    ::TlsFree(g_dwTlsIndex); 
    return 0; 
}

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新源县| 阜宁县| 香格里拉县| 滁州市| 个旧市| 衢州市| 叙永县| 临汾市| 乌审旗| 宁阳县| 山东| 麦盖提县| 顺平县| 太保市| 同仁县| 柞水县| 柳江县| 龙井市| 木里| 奉贤区| 海丰县| 留坝县| 乌鲁木齐县| 青龙| 海门市| 菏泽市| 凤冈县| 贺兰县| 新闻| 奈曼旗| 德令哈市| 阿合奇县| 杭锦后旗| 珲春市| 岚皋县| 上犹县| 晴隆县| 中卫市| 佛冈县| 崇左市| 余庆县|