일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- install
- package
- window
- c++
- Linux
- Callback
- write
- go언어
- JavaScript
- channel
- GO 언어
- Golang
- File
- windows
- mutex
- Sync
- range
- C
- bitcoin
- go
- API
- Close
- 영화
- 리뷰
- Python
- http
- json
- tcp
- FOR
- 책
- Today
- Total
목록thread (3)
Code Habit
여러 쓰레드에서 공유되는 데이터에 대해 동시에 접근하는 것을 방지하기 위해 std::mutex를 사용할 수 있다. #include #include int g_shared_data = 0; std::mutex g_mtx; void IncrementSharedData() { // 스코프 기반 락 관리 std::lock_guard lock(g_mtx); g_shared_data++; } int main() { std::vector threads; // 10개의 쓰레드 생성 및 실행 for(int i=0; i < 0; i++) { threads.emplace_back(IncrementSharedData); } // 모든 쓰레드가 종료될때까지 기다림 for(auto& thr : threads) { thr.join..
Modern C++은 C++ 11 이 후의 버전을 가리키며 더 효율적으로 코드를 작성하고 안정성 및 최적화를 위해 등장했다. 1. auto 키워드 - auto 키워드를 이용하여 변수형을 자동으로 추론할 수 있다. auto n = 10; // int형으로 추론 auto str = "coding"; // char* 형식으로 추론 2. 범위 기반 루프 ( for 문 ) - 범위 기반 루프를 사용하여 컨테이너의 모든 요소를 간편하게 순회할 수 있다. std::map data; data[0] = "first"; data[1] = "second"; data[2] = "third"; for (auto& fit : data) { auto& idx = fit.first; auto& value = fit.second; /..
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에 빠질 ..