• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 學習電腦 > 電腦硬件知識 > CPU知識 > 多線程執行CPU過高問題

    多線程執行CPU過高問題

    時間: 捷鋒774 分享

    多線程執行CPU過高問題

      在項目開發過程中使用到多線程技術,有時程序運行起來占用CPU很高(具體占用多少,跟你的CPU核數有關。CPU過高的問題,CPU多線程的問題,下面是學習啦小編帶來的關于多線程執行CPU過高問題的內容,歡迎閱讀!

      多線程執行CPU過高問題:

      CPU占用高不高,跟你的線程數多少沒有太多的影響。因為若你CPU是雙核,即使只創建了2個子線程,而這兩個子線程是2個死循環,此時你的CPU占用也會是相當的高的。

      不信的可以直接試試。

      CPU占用高不高也不能只看本程序運行起來的CPU占用率,因為若是你的程序使用了內核對象的調用,那么在任務管理器中你會看到你的程序占用CPU是不高的,但使用到內核對象在內核調用中的那些服務程序就會顯示CPU占用高。

    [cpp]view plain?
    1. int _tmain(int argc, _TCHAR* argv[])  
    2. {  
    3.     InitializeCriticalSection(&m_gCriticalSection);  
    4.     //一個線程最多可以掛起 MAXIMUM_SUSPEND_COUNT次,即127次  
    5.     //線程1  
    6.     unsigned threadID;  
    7.     hThread1 = (HANDLE)_beginthreadex(NULL, 0, ThreadProc1, NULL, 0, &threadID);  
    8.       
    9.     //線程2  
    10.     unsigned threadID2;  
    11.     hThread2 = (HANDLE)_beginthreadex(NULL, 0, ThreadProc2, NULL, 0, &threadID2);  
    [cpp] view plain?
    1. return 0;  
    [cpp] view plain?
    1. unsigned __stdcall ThreadProc1(void* pParam)  
    2. {  
    3.     //打印數字iCount  
    4.     if(0 == m_gCount)  
    5.     {  
    6.         Sleep(2000);  
    7.     }  
    8.   
    9.     while(1)  
    10.     {  
    11.         EnterCriticalSection(&m_gCriticalSection);  
    12.         m_gCount++;  
    13.         <span string">"color:#ff0000;">cout << "線程一:" << m_gCount << endl; //兩個線程函數中的的這句不注釋掉,該程序在任務管理中顯示占用的CPU是不高的,但內核調用占用CPU很高</span>  
    [cpp] view plain?
    1. <span string">"color:#ff0000;">                       //若是注釋掉,則程序在任務管理器中顯示占用的CPU就會很高  
    2. </span>       LeaveCriticalSection(&m_gCriticalSection);  
    3.           
    4.         //Sleep(1000);  
    5.     }  
    6.   
    7.     return 0;  
    8. }  
    9.   
    10. unsigned __stdcall ThreadProc2(void* pParam)  
    11. {  
    12.     //打印數字iCount  
    13.     while(1)  
    14.     {  
    15.         EnterCriticalSection(&m_gCriticalSection);  
    16.         m_gCount++;  
    17.         <span string">"color:#ff0000;">cout << "另一線程:" << m_gCount << endl;   
    18. </span>       LeaveCriticalSection(&m_gCriticalSection);  
    19.           
    20.         //Sleep(1000);  
    21.     }  
    22.   
    23.     return 0;  
    24. }  

    看了多線程執行CPU過高問題文章內容的人還看:

    1.CPU專業名詞詳解

    2.cpu雙核心四線程什么意思

    3.cpu線程數是什么

    4.CPU的好壞

    5.CPU的處理技術有哪些

    6.C#習題大全(2)

    7.怎么看cpu好壞

    8.CPU怎么查看


     

    608919 主站蜘蛛池模板: 欧美国产中文字幕| 成人福利视频app| 久久精品国产精品国产精品污| 欧美军人男男同videos可播放| 亚洲成a人一区二区三区| 欧美日本在线一区二区三区| 亚洲日韩精品无码AV海量| 欧美激情一区二区三区在线| 亚洲欧美4444kkkk| 欧美日韩在线成人| 亚洲国产日韩在线| 欧美一卡2卡3卡4卡5卡视频免费| 亚洲中文字幕无码av在线| 最近手机中文字幕1页| 亚洲AV最新在线观看网址| 最新版天堂中文在线| 久久精品99国产精品日本 | 人妻av无码一区二区三区| 狠狠人妻久久久久久综合蜜桃 | 小明天天看成人免费看| 一个人看日本www| 天天久久综合网站| 97国产免费全部免费观看| 国产精品老女人精品视| jizz性欧美2| 国产小视频在线观看网站| 青青草原1769久久免费播放| 国产一区二区三区在线看片| 精品黑人一区二区三区| 免费无码看av的网站| 波多野结衣办公室33分钟| 亚洲成a人片在线观看中文动漫| 欧美亚洲国产精品久久久久| 久久黄色免费网站| 日本在线高清视频| 中文字幕一区二区三区日韩精品| 小唐璜情史在线播放| 99在线精品免费视频九九视| 国产精品视频第一区二区三区| 1213孕videos俄罗斯| 国产成人十八黄网片|