멀티스레드 개념을 객체지향으로 캡슐화 해보자.
func함수가 함수 포인터로 다른 스레드가 또 실행되고,
그 다음 "A"가 void* p로 전달된다.
아래 코드가 라이브러리 내부에 있는 클래스라고 가정해보자.
run() 함수는 멤버 함수이므로 this가 있다.
사용자가 this를 보내주면, threadMain함수에서 casting 해서 쓸 수 있다.
threadMain함수는 static 함수여야 한다.
왜냐하면 CreateThread에서 호출될 때, this가 추가되어서 모양이 달라진다.
따라서 this없이도 부를 수 있는 static함수로 만든다.
threadMain 함수 내부에서
Main함수를 부를 때, Main 함수는 멤버 함수이므로 this가 필요하다.
Thread를 하나 생성하여 p를 casting 하여 this를 받아 사용한다. (this->Main(); 를 쓸 수 있게 하려고)
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
[ST교육] 생성자소멸자 (0) | 2014.09.06 |
---|---|
[ST교육] thiscall 4 (0) | 2014.08.31 |
[ST교육] thiscall 2 (0) | 2014.08.31 |
[ST교육] thiscall 1 (0) | 2014.08.28 |
[디자인패턴] Adapter Patten (0) | 2014.01.28 |