亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usersynccompare.cpp

?? Windows via C/C++, Fifth Edition圖書源代碼
?? CPP
字號:
/******************************************************************************
Module:  UserSyncCompare.cpp
Notices: Copyright (c) 2008 Jeffrey Richter & Christophe Nasarre
******************************************************************************/

#include "..\CommonFiles\CmnHdr.h"     /* See Appendix A. */
#include <windows.h>
#include <stdio.h>
#include <tchar.h>


// Stop watch class from Chapter 7
class CStopwatch {
public:
   CStopwatch() { QueryPerformanceFrequency(&m_liPerfFreq); Start(); }

   void Start() { QueryPerformanceCounter(&m_liPerfStart); }

   // Returns # of milliseconds since Start was called
   __int64 Now() const {   
      LARGE_INTEGER liPerfNow;
      QueryPerformanceCounter(&liPerfNow);
      return(((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * 1000) 
         / m_liPerfFreq.QuadPart);
      }

private:
   LARGE_INTEGER m_liPerfFreq;   // Counts per second
   LARGE_INTEGER m_liPerfStart;  // Starting count
};


DWORD g_nIterations = 1000000;
typedef void (CALLBACK* OPERATIONFUNC)();

DWORD WINAPI ThreadIterationFunction(PVOID operationFunc) {
	OPERATIONFUNC op = (OPERATIONFUNC) operationFunc;
   for (DWORD iteration = 0; iteration < g_nIterations; iteration++) {
      op();
   }  
   return 0;
}

void MeasureConcurrentOperation(
   TCHAR* operationName, DWORD nThreads, OPERATIONFUNC operationFunc) {
   HANDLE* phThreads = new HANDLE[nThreads];

   SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST);
   for (DWORD currentThread = 0; currentThread < nThreads; currentThread++) {
      phThreads[currentThread] = 
         CreateThread(NULL, 0, ThreadIterationFunction, operationFunc, 0, NULL);
   }
   SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_NORMAL);

   CStopwatch watch;
   WaitForMultipleObjects(nThreads, phThreads, TRUE, INFINITE);
   __int64 elapsedTime = watch.Now();
   _tprintf(
	   TEXT("Threads=%u, Milliseconds=%u, Test=%s\n"), 
      nThreads, (DWORD)elapsedTime, operationName);

   // Don't forget to clean up the thread handles
   for (DWORD currentThread = 0; currentThread < nThreads; currentThread++) {
      CloseHandle(phThreads[currentThread]);
   }
   delete phThreads;
}



// -----------------------------------------------------------
// List of tests to run:
// -----------------------------------------------------------
// Reading from a volatile int with NO synchronization at all
// Writing to an int using InterlockedIncrement
// Reading from a volatile int using critical sections
// Read from a volatile int using SRWLock
// Read from a volatile int using Mutex
// -----------------------------------------------------------

volatile LONG gv_value = 0;

// 'lValue': local variable is initialized but not referenced
#pragma warning(disable:4189)
void WINAPI VolatileReadCallback()
{
   LONG lValue = gv_value; 
}
#pragma warning(default:4189)

void WINAPI VolatileWriteCallback()
{
   gv_value = 0; 
}

void WINAPI InterlockedIncrementCallback()
{
	InterlockedIncrement(&gv_value);
}

CRITICAL_SECTION  g_cs;
void WINAPI CriticalSectionCallback()
{
	EnterCriticalSection(&g_cs);
	gv_value = 0;
	LeaveCriticalSection(&g_cs);
}


HANDLE g_hMutex;
void WINAPI MutexCallback()
{
	WaitForSingleObject(g_hMutex, INFINITE);
	gv_value = 0;
	ReleaseMutex(g_hMutex);
}


// Slim Reader/Writer Lock global variable
SRWLOCK g_srwLock;

void WINAPI SRWLockReadCallback() {
	AcquireSRWLockShared(&g_srwLock);
	gv_value = 0;
	ReleaseSRWLockShared(&g_srwLock);
}

void WINAPI SRWLockWriteCallback() {
	AcquireSRWLockExclusive(&g_srwLock);
	gv_value = 0;
	ReleaseSRWLockExclusive(&g_srwLock);
}


int _tmain(int argc, _TCHAR* argv[]) {
	
   for (int nThreads = 1; nThreads <= 4; nThreads *= 2) {
      MeasureConcurrentOperation(TEXT("Volatile Read"), nThreads, VolatileReadCallback);
		MeasureConcurrentOperation(TEXT("Volatile Write"), nThreads, VolatileWriteCallback);
		MeasureConcurrentOperation(TEXT("Interlocked Increment"), nThreads, InterlockedIncrementCallback);

		// Prepare the critical section
		InitializeCriticalSection(&g_cs);
		MeasureConcurrentOperation(TEXT("Critical Section"), nThreads, CriticalSectionCallback);
		// Don't forget to cleanup
		DeleteCriticalSection(&g_cs);

      // Prepare the Slim Reader/Writer lock
		InitializeSRWLock(&g_srwLock);
		MeasureConcurrentOperation(TEXT("SRWLock Read"), nThreads, SRWLockReadCallback);
		MeasureConcurrentOperation(TEXT("SRWLock Write"), nThreads, SRWLockWriteCallback);
		// NOTE: You can't cleanup a Slim Reader/Writer lock

		// Prepare the mutex
		g_hMutex = CreateMutex(NULL, false, NULL);
		MeasureConcurrentOperation(TEXT("Mutex"), nThreads, MutexCallback);
		CloseHandle(g_hMutex);
		_tprintf(TEXT("\n"));
	}   

	return(0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
eeuss鲁一区二区三区| 一本色道久久综合狠狠躁的推荐| 国产精品成人免费| 国产精品久久久久久久久果冻传媒| 欧美探花视频资源| 国产成人aaa| 日韩经典一区二区| 亚洲美女视频在线观看| 欧美精品一区二区精品网| 欧美午夜精品久久久久久孕妇| 国产成人av电影免费在线观看| 日韩中文字幕不卡| 亚洲在线视频免费观看| 国产精品美女www爽爽爽| 精品女同一区二区| 91精品国产手机| 在线观看一区日韩| 91丨九色丨国产丨porny| 国产精品99久久久久| 捆绑调教美女网站视频一区| 亚洲综合色婷婷| 亚洲日本一区二区| 欧美精彩视频一区二区三区| 久久综合久久99| 日韩欧美国产1| 91精品国产高清一区二区三区| 在线观看视频一区二区| 色屁屁一区二区| 91麻豆蜜桃一区二区三区| 成年人午夜久久久| 成人午夜免费av| 成人综合婷婷国产精品久久免费| 国产毛片精品视频| 国产综合一区二区| 久久激情五月激情| 精品亚洲国内自在自线福利| 美女视频网站久久| 免费观看在线综合色| 免费欧美在线视频| 日本视频免费一区| 麻豆精品在线视频| 国内精品伊人久久久久av一坑| 极品美女销魂一区二区三区 | 欧美aⅴ一区二区三区视频| 亚洲妇熟xx妇色黄| 亚洲电影视频在线| 日韩电影免费在线观看网站| 日韩成人午夜精品| 老司机精品视频导航| 国产一区不卡视频| 国产成人免费视频网站| 精品免费视频.| 欧美精品一区二区三区视频| 国产日韩欧美精品在线| 国产精品美日韩| 亚洲欧洲综合另类| 亚洲国产另类av| 男人操女人的视频在线观看欧美| 精彩视频一区二区三区 | 欧美日韩一区国产| 欧美一区二区在线看| 久久一区二区三区国产精品| 国产精品三级电影| 亚洲第一精品在线| 国产毛片精品视频| 色www精品视频在线观看| 欧美高清激情brazzers| 久久综合网色—综合色88| 日本一区二区高清| 亚洲愉拍自拍另类高清精品| 蜜臀国产一区二区三区在线播放 | 亚洲尤物视频在线| 久久电影网站中文字幕| 不卡一区二区中文字幕| 欧美日韩亚洲综合在线| 久久久精品tv| 亚洲国产一区二区a毛片| 蜜芽一区二区三区| 成人h精品动漫一区二区三区| 欧美日韩一区三区| 国产日韩欧美电影| 亚洲成人第一页| 国产成人在线看| 欧美精品 国产精品| 国产亚洲精品超碰| 五月激情综合婷婷| a级精品国产片在线观看| 制服丝袜亚洲网站| 中文字幕一区二区三区不卡| 日韩av电影天堂| 99精品欧美一区| 久久久久久久久久久电影| 亚洲午夜电影网| 成人国产精品免费观看| 日韩视频永久免费| 夜夜嗨av一区二区三区网页 | 欧美高清一级片在线| 国产精品毛片高清在线完整版 | 91蜜桃在线观看| 精品国产乱码久久久久久浪潮| 一级日本不卡的影视| 国产成人鲁色资源国产91色综| 欧美一级日韩一级| 亚洲乱码国产乱码精品精小说 | 精品一区二区免费视频| 欧美揉bbbbb揉bbbbb| 最新中文字幕一区二区三区 | 日韩天堂在线观看| 一区二区三区高清不卡| av成人老司机| 欧美国产日韩亚洲一区| 久久99日本精品| 69av一区二区三区| 亚洲国产精品视频| 色婷婷国产精品| 亚洲女子a中天字幕| 成人精品国产福利| 中国色在线观看另类| 国产在线视频一区二区三区| 日韩情涩欧美日韩视频| 日韩av中文字幕一区二区三区| 欧美视频日韩视频在线观看| 曰韩精品一区二区| 色久优优欧美色久优优| 成人欧美一区二区三区1314| av成人动漫在线观看| 国产精品久久免费看| 成人在线综合网站| 国产日产精品一区| 成人午夜av影视| 中文字幕精品三区| 成人美女视频在线观看| 欧美国产日韩亚洲一区| 成人高清伦理免费影院在线观看| 国产精品久久久久久久久晋中| 成人网在线免费视频| 中文字幕久久午夜不卡| youjizz久久| 最近日韩中文字幕| 91啪亚洲精品| 一区二区三区成人| 7777女厕盗摄久久久| 免费在线观看成人| wwwwww.欧美系列| 成人免费视频一区| 亚洲欧美一区二区在线观看| 欧洲精品一区二区三区在线观看| 一区二区三区精品视频在线| 欧美电影一区二区| 极品少妇xxxx精品少妇| 国产精品久久久久久久第一福利| av亚洲产国偷v产偷v自拍| 亚洲综合图片区| 日韩一区二区三区四区| 国产风韵犹存在线视精品| 亚洲丝袜另类动漫二区| 欧美最新大片在线看| 男人操女人的视频在线观看欧美| 国产一区不卡精品| 欧美精品一区二区三区蜜桃| 国产中文字幕精品| 国产精品免费免费| 在线观看日韩国产| 免费人成在线不卡| 欧美韩国一区二区| 欧美在线播放高清精品| 日韩激情一二三区| 久久精品一区八戒影视| 一本色道a无线码一区v| 天天影视色香欲综合网老头| 久久老女人爱爱| 91丨九色porny丨蝌蚪| 视频精品一区二区| 天天亚洲美女在线视频| 国产亚洲欧美激情| 欧美三级视频在线| 国产精品538一区二区在线| 亚洲乱码精品一二三四区日韩在线| 7777精品久久久大香线蕉| 丁香婷婷深情五月亚洲| 香蕉久久一区二区不卡无毒影院| 久久综合久久鬼色| 欧美日韩一区二区三区四区| 国产精品一品二品| 亚洲福利视频一区二区| 欧美高清在线精品一区| 91精品国产黑色紧身裤美女| 一区二区三区在线视频观看58| 欧美色爱综合网| 国产精品18久久久久久vr| 亚洲高清免费一级二级三级| 欧美激情在线看| 欧美精品久久99久久在免费线 | 国产精品资源站在线| 亚洲电影一级黄| 中文av字幕一区| 久久久99精品免费观看| 3d动漫精品啪啪1区2区免费 | 国产欧美一区二区精品婷婷| 欧美精品在线一区二区三区|