Operations Dev
-
SemaphoreOperations Dev/writech 2010. 12. 10. 18:23
// Example03_Semaphore.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include #include #include #include using namespace std; unsigned int WINAPI writeCharacter(LPVOID param); string g_string; int const MAX_THREAD = 5; HANDLE g_semaphoreHandle; int _tmain(int argc, _TCHAR* argv[]) { g_semaphoreHandle = ::CreateSemaphore(NULL,1, 1 , NULL); g_string.reserve(MAX_THREAD * 1000 +1); //가용공간 ..
-
CriticalSectionOperations Dev/writech 2010. 12. 10. 18:22
// Example04_CriticalSection.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // CriticalSection은 유저모드(재귀 스핀락)인데 오늘은 일반 락 #include "stdafx.h" #include #include #include #include using namespace std; unsigned int WINAPI writeCharacter(LPVOID param); string g_string; int const MAX_THREAD = 5; CRITICAL_SECTION g_criticalSection; int _tmain(int argc, _TCHAR* argv[]) { ::InitializeCriticalSection(&g_criticalSection)..
-
SpinLockOperations Dev/writech 2010. 12. 10. 18:22
// Example05_SpinLock.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // 커널모르게 돌리면 유저모드 #include "stdafx.h" #include #include #include #include using namespace std; unsigned int WINAPI writeCharacter(LPVOID param); string g_string; int const MAX_THREAD = 5; bool g_isLocked = false; int _tmain(int argc, _TCHAR* argv[]) { DWORD threadIDs[MAX_THREAD]; HANDLE threadHandles[MAX_THREAD]; char alphas[MAX_THREAD]; for..
-
SpinLock2Operations Dev/writech 2010. 12. 10. 18:10
// Example06_SpinLock2.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include #include #include #include using namespace std; unsigned int WINAPI writeCharacter(LPVOID param); string g_string; int const MAX_THREAD = 5; long g_key =1; int _tmain(int argc, _TCHAR* argv[]) { DWORD threadIDs[MAX_THREAD]; HANDLE threadHandles[MAX_THREAD]; char alphas[MAX_THREAD]; for(int i =0; i
-
SimpleConcurrencyOperations Dev/writech 2010. 12. 10. 17:53
// Example01_Simple.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include #include #include #include using namespace std; unsigned int WINAPI writeCharacter(LPVOID param); string g_string; int const MAX_THREAD = 5; int _tmain(int argc, _TCHAR* argv[]) { g_string.reserve(MAX_THREAD * 1000 +1); //가용공간 예약부분 //char ch = 'a' ; DWORD threadIDs[MAX_THREAD]; HANDLE threadHandles[MAX_THREAD]; ..
-
HandleBased Operation SystemOperations Dev/Handle 2010. 12. 10. 17:43
-- Process.h #pragma once #include class Process { public: Process(std::string const & name); public: void excute(std::string const & message);//const 변경하지말라! &빠르게 넘기겠다! private: std::string _name; }; -- Process.cpp #include "stdafx.h" #include using namespace std; #include "Process.h" Process::Process( std::string const & name) : _name( name ) { } void Process::excute(const std::string & messag..
-
map과 make_pairOperations Dev/Handle 2010. 12. 10. 17:35
// Table.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { map table; table["abc"] = 10; table.insert( make_pair("due",20));// pair 두개의 자료를 하나의 자료로 묶어준다. /*pair a; a.first; a.second; */ //map::iterator iter; auto iter =table.begin(); for(; iter !=table.end(); ++iter ) { cout
-