본문 바로가기
반응형

Thread5

C++] visual studio 에서 deadlock 상태 확인하기(CRITICAL_SECTION) 1. CRITICAL_SECTIONCRITICAL_SECTION 클래스는 에서 제공하는 MFC 라이브러리 기능입니다. CRITICAL_SECTION 은 데드락이 발생했을시 디버깅을 통해서 쉽게 원인파악이 가능합니다. 2. 예제 코드#include #include #include using namespace std; class CriticalSection{ CRITICAL_SECTION m_critSec;public: CriticalSection() { InitializeCriticalSectionEx(&m_critSec, 0, 0); } ~CriticalSection() { DeleteCriticalSection(&m_critSec); } void Lock() { EnterCriticalSection(&.. 2020. 11. 5.
Go 언어의 goroutine에 대해서... 기본적으로 C++은 Thread or task or async를 이용해 쓰레드를 만듭니다. JAVA는 extands Thread을 이용한 run overriding or implements Runnable 을 이용한 run overriding 또는 future클래스를 이용한 Thread 할당 등.... 여러가지 방식으로 Thread를 만들 수 있습니다. 반면 Go언어에서 쓰레드를 사용하려면 go 키워드를 이용한 goroutine을 사용해야 합니다. 1. goroutine vs Thread??Thread의 경우 기본적으로 stack을 할당받으며, heap, data 영역은 공유를 하게 됩니다.때문에 프로세스보다 가볍다는 장점과 context 발생시 프로세스보다 빠르다는 점이 있습니다. Thread는 기본(.. 2020. 11. 4.
1편] 동기와 비동기 블로킹과 논블로킹에 대해서.... 요즘 자료도 많아지고 굉장히 개념 자체가 햇갈립니다. 저도 조사하면서 "내가 배운 내용이 맞나?" 싶을 정도로 햇갈리는 내용들이 많아서 이렇게 정리합니다. 3편으로 나눌 생각이고, 동기, 비동기, 블로킹, 논 블로킹, 멀티 프로세스, 멀티 쓰레드, 멀티 플렉싱, select, poll, epoll, IOCP, boost::asio::context 순으로 진행하려고 합니다. 요번 글은 동기, 비동기, 블로킹, 논 블로킹에 대한 내용입니다. 블로킹과 논 블로킹에 대해 예기하기 앞서, 동기와 비동기에 대해 예기해 보겠습니다. 1. 동기와 비동기??동기와 비동기는 굉장히 다양한 곳에서 쓰입니다. 그리고 뜻하는 정의도 조금씩 다르죠. 하지만 근본적으론 같습니다. 프로그래밍 쪽에서의 동기와 비동기의 차이는 "단일 .. 2020. 9. 7.
C++ thread와 async의 차이점 C++에서 병렬처리를 하기위해 여러가지 클래스를 제공합니다. C++에선 std::thread, std::future, std::async를 제공합니다. 그 중 많이 쓰이는 std::thread와 std::async에 대해 설명해볼까 합니다. 1. C++에서 Thread와 Async는 다른녀석인가? 둘다 같은 쓰레드입니다. 많이 햇갈리는게 Thread라는 개념이 있고, 각 언어별로 Thread를 사용하기위해 프로그래밍 내에 정의된 함수 혹은 객체를 불러옵니다. 해당 Thread를 불러오는 방법은 여러가지일 수 있습니다. JAVA의 interface인 run, 클래스 Thread, C언어의 pthread, C++의 thread, async, task 등.... 전부 다 Thread입니다. 특별한게 없습니다... 2020. 6. 9.
Thread와 Process의 Context Switching Context Switching이란? 우선 Thread에서의 Context Switching과 Process의 Context Switching은 같은 말입니다. 단지, 이 둘의 차이점은 내부에 있습니다. 그럼 의미가 동일한 Context Switching에 대해 간략한 설명을 하겠습니다. Process를 예를 들면..... "나는 현재 멜론을 들으면서, 롤을 하고 있으며, 친구들에게 카카오톡 문자가 PC로 오고 있다." 라고 한다면 총 3번의 Context Switching이 일어난 것입니다. 멜론 노래를 재생 -> 게임 롤(LOL)에서의 컨트롤 -> 카카오톡 문자 -> 멜론 노래 재생 -> 게임 롤(LOL)컨트롤 -> 카카오톡 문자...... 이러한 과정들이 0.0몇초만에 반복되게 됩니다. 너무 빠르게.. 2020. 6. 5.
반응형

스킨편집 -> html 편집에서