본문 바로가기

Mutex4

[C++] 멀티스레딩 프로그래밍 (2) References Professional C++ https://en.cppreference.com/w/ Contents Mutual Exclusion Condition Variable Futures (std::promise, std::future) 멀티스레드 Logger 클래스 예제 [C++] 멀티스레딩 프로그래밍 (1) 지난 포스팅에 이어서 계속해서 C++에서의 멀티스레딩 프로그래밍에 대해 알아보겠습니다. 이전 포스팅과 마찬가지로 C++에서 제공하는 기능들에 대해 살펴보고, 이후에 사용하는 예제들을 살펴보겠습니다. 4. Mutual Exclusion 멀티스레드 프로그램을 작성할 때는 반드시 연산의 순서를 신중하게 결정해야 합니다. 스레드에서 공유 데이터를 읽거나 쓰면 문제가 발생할 수 있기 때문입니다.. 2022. 3. 3.
[pthread] Critical Section References An Introduction to Parallel Programming Contents PI 값 구하기 Critical Section (크리티컬 섹션) Busy waiting Mutex (뮤텍스) 행렬-벡터 연산 코드는 꽤 쉽게 작성했습니다. 이는 공유 메모리 위치를 쉽게 액세스할 수 있기 때문입니다. 초기화 이후에, y를 제외한 모든 변수들은 각 스레드에서 쉽게 접근할 수 있습니다. 즉, y를 제외한 모든 공유 변수들은 main 스레드에서 초기화된 이후에 변경될 수 없다는 것을 의미합니다. 게다가 y에 대해서 무언가 변경을 하려고 하더라도 오직 하나의 스레드만이 개별 컴포넌트를 변경할 수 있습니다. 따라서 두 스레드(혹은 그 이상)가 하나의 컴포넌트를 변경하지 않습니다. 잘 아시겠지.. 2021. 11. 17.
[C++] 생산자(Producer) / 소비자(Consumer) 패턴 References 씹어먹는 C++ (https://modoocode.com/270) Contents 생산자 / 소비자 패턴 Producer - Consumer 패턴 예시 생산자(Producer) - 소비자(Consumer) 패턴은 멀티 쓰레드 프로그램에서 자주 사용되는 패턴입니다. 여기서 생산자(producer)는 무언가 처리할 일을 받아오는 쓰레드를 의미합니다. 예를 들어, 웹사이트를 다운로드하여 분석하는 프로그램을 만들었다고 가정한다면, 이 경우 웹사이트를 다운로드하는 쓰레드가 생산자가 됩니다. 소비자(consumer)는 받은 일을 처리하는 쓰레드를 의미하며, 앞의 예에서 다운로드 받은 웹페이지를 분석하는 쓰레드가 소비자 역할을 하게 됩니다. 위와 같은 예시를 쓰레드로 구현해보겠습니다. #inclu.. 2021. 8. 9.
[C++] mutex References 씹어먹는 C++ (https://modoocode.com/270) Contents race condition (경쟁 상태) mutex deadlock (데드락) 2021.08.07 - [C & C++] - [C++] thread [C++] thread References 씹어먹는 C++ (https://modoocode.com/269) Contents thread join / detach thread에 인자 전달하기 single thread vs multi thread 쓰레드를 사용하면 병렬 수행이 가능한 작업들을 단일 쓰레드 프로.. junstar92.tistory.com 이전 게시글에서 thread에 대해서 알아봤습니다. 이번에는 서로 다른 쓰레드에서 같은 메모리를 공유할 때 발생.. 2021. 8. 7.