일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DirectX 12
- 스케줄링
- Direct12
- 영속성
- 알고리즘
- 운영체제
- 쓰레드
- 멀티쓰레드
- 프로그래머스
- DirectX12
- directx
- 컨디션 변수
- 병행성 관련 오류
- 다이나믹프로그래밍
- 병행성
- 멀티프로세서
- 타입 객체
- OS
- I/O장치
- 자료구조
- 렌더링 파이프라인
- 디자인패턴
- 그리디알고리즘
- 백준
- 그리디 알고리즘
- 동적계획법
- 다이나믹 프로그래밍
- 파일시스템 구현
- codility
- 락
- Today
- Total
목록쓰레드 (2)
기록공간

쓰레드 생성 멀티 쓰레드 프로그램을 작성 시, 가장 먼저 할 일은 새로운 쓰레드 생성이다. 쓰레드 생성을 위해서는 해당 인터페이스가 존재해야 한다. 우선 thread 라이브러리를 포함시켜야 한다. 그리고 std::thread 클래스의 thread_object를 만든다. thread_function에는 생성된 쓰레드가 실행할 함수가 들어간다. arg는 thread_function에 넘길 매개변수이다. 다만 thread_function 선언에 사용된 매개변수와 일치해야 한다. 다음은 예시 코드이다. #include #include void thread_function(int a, int b) { std::cout

이번 장에서는 프로세스를 위한 새로운 개념인 쓰레드(thread)를 소개한다. 프로그램에서 한 순간에 하나의 명령만을 실행하는 고전적인 관점에서 벗어나 멀티 쓰레드 프로그램은 하나 이상의 실행 지점(독립적으로 실행 가능한 Program Counter값)을 가지고 있다. 멀티 쓰레드와 프로세스의 차이가 있다면 주소 공간을 공유하기 때문에 동일한 값에 접근할 수 있다. 하나의 쓰레드 상태는 프로세스의 상태와 매우 유사하다. 쓰레드는 프로그램 카운터(PC)와 연산을 위한 레지스터들을 가지고 있다. 만약 두 개의 쓰레드(T1, T2)가 하나의 프로세서에서 실행 중이라면 실행하고자 하는 쓰레드(T1)는 반드시 문맥 교환(context switch)을 통해서 실행 중인 쓰레드(T2)와 교체되어야 한다. 문맥 교환은..