이펙티브 STL 서적을 읽고 있던중 auto_ptr 컨테이너(COAP: Container Of A(a)uto_P(p)tr)는 절대 금지라고 강조하는 부분이있었습니다. 책의 저자는 COAP를 만드는 코드는 컴파일조차되어서는 안된다고 강조합니다. -_-! 그 결정적인 이유는 COAP는 이식이 불가능하다는 점입니다. 이 점을 풀어서 설명드리자면 auto_ptr 하나를 복사(copy)하면, auto_ptr이 가리키는 객체의 소유권(ownership)은 복사하는 (copying) auto_ptr로 옮겨지고 복사되는 (copied) auto_ptr는 NULL로 셋팅된다는 것입니다. 즉 auto_ptr을 복사하는 것은 '그 포인터의 값을 바꾸는 것이다.' 라고 말할 수 있겠습니다. 이렇게 이식이 불가능한 상황인데 S..
다중 쓰레드 환경에서 작업하다보면 쓰레드동기화 때문에 골치아픈경우가 매우 많다. 예를 들면 두 쓰레드가 공통객체를 같이 쓰게되는 경우이다. 테스트했었던 동기화처리가 되지않은 코드이다. #include #include "CThread.h" #include int money; class ThreadTest : public CThread {private: int num;public: ThreadTest () { num = 0; } ThreadTest (int num){ this->num = num;} virtual int run () { //CThreadSync sync; if(money >= 1000) { printf("[%d] 돈이 1000원 이상 있음 \n",num); for(int idx=0; idx..
쓰레드를 이용할일이 있어서 pthread로 쓰레드를 만들어봤다. 윈도우즈에서 pthread를 사용하는 방법은 이전 포스트에써 놨다.(http://idea-sketch.tistory.com/4) pthread를 어떻게 쓰실지 잘 모르겠다는 분들은 여기를 참조하세요. http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Thread/Beginning/PthreadApiReference 혹시나 필요하신 분들은 가져다 본이의 입맛에 맞게 고쳐쓰시면 되겠다. 준비물은 pthread.h이다. CThread.h #include class CThread{protected: pthread_t mThread; bool threadRunFlag;public: CThread ();..
- Total
- Today
- Yesterday
- metaprogramming
- ruby meta programming
- MySQL 족보
- MySQL
- Elasticsearch Cluster
- 페어프로그래밍
- Autoloading
- innoDB lock
- autoload_paths
- 루비
- 인덱스
- ruby
- MySQL 인덱스
- db
- 엘라스틱서치 기초
- next key lock
- gap lock
- 메타프로그래밍
- 되추적
- 페어 프로그래밍
- 넥스트 키 락
- lock
- 트랜잭션
- 루비 메타프로그래밍
- 루비 상수
- mysql lock
- 갭 락
- Pair-programming
- InnoDB
- dead lock
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |