일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- window
- go
- Golang
- Callback
- mutex
- c++
- windows
- 리뷰
- C
- GO 언어
- JavaScript
- Python
- bitcoin
- write
- install
- package
- Close
- 영화
- Sync
- 책
- File
- API
- go언어
- http
- Linux
- json
- FOR
- tcp
- channel
- range
- Today
- Total
목록스레드 (3)
Code Habit
설 명 쓰레드의 가장 안전한 종료 방법은 쓰레드 함수가 모든일을 처리하고 return 하는 것이다. flag를 이용하여 쓰레드 함수를 안정적으로 종료 시킨다. Waitforsingleobject 함수를 이용하여 쓰레드가 안정적으로 종료될때까지 기다린다. 이때 Waitforsingleobject 함수 사용 시 프로그램이 행에 걸릴 수 있으므로 적당한 제한 시간을 두고 쓰레드 함수가 미종료시 TerminateThread함수로 강제 종료할 수 있다. ( 권장x ) 예 제 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 31 32 33 34 #include // bool g_threadSwitch = true; //..
설 명 쓰레드 생성 및 종료 함수. _endthreadex는 _beginthreadex로 생성된 스레드 함수가 종료 됨에 따라 자동으로 호출 된다. _endthreadex로 스레드 종료 시 스레드에 사용된 자원들을 안전히 해제할 수 있도록 도와준다. _endthreadex로 스레드 종료 시 스레드 핸들을 닫지 않기 때문에 CloseHandle로 명시적으로 스레드 핸들을 반드시 닫아주어야 한다. 함수 원형 uintptr_t _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr ); vo..
MFC 특징 MFC 객체는 스레드에 안전한 구조가 아니다. MFC 객체에 접근(Access)하기 위해서는 CWinThread 객체를 사용한 스레드여야 한다. ( User-Interface Thread, Worker Thread) User-Interface Thread와 Worker Thread의 차이 : User-Interface Thread는 스레드 자체의 메시지 큐를 가지며 일반적으로 UI를 포함한다. MFC 객체는 그것을 생성한 스레드에서만 접근할 수 있다. MFC는 윈도우 핸들과 윈도우 객체를 연결하는 맵( Windows Handle Maps)을 가지는데 이것은 스레드의 로컬 영역에 저장되기 때문이다. Worker Thread에서 UI관련 객체 생성 및 접근은 위험하다. Dead lock에 빠질 ..