일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 운영체제
- 동적계획법
- 다이나믹프로그래밍
- 컨디션 변수
- 렌더링 파이프라인
- Direct12
- 다이나믹 프로그래밍
- 멀티프로세서
- 영속성
- I/O장치
- 파일시스템 구현
- 알고리즘
- 디자인패턴
- 그리디알고리즘
- DirectX12
- directx
- 쓰레드
- codility
- 병행성 관련 오류
- 프로그래머스
- 타입 객체
- 락
- 백준
- 자료구조
- OS
- DirectX 12
- 병행성
- 멀티쓰레드
- 스케줄링
- 그리디 알고리즘
Archives
- Today
- Total
목록쓰레드 (2)
기록공간
3-1장. 쓰레드 API
쓰레드 생성 멀티 쓰레드 프로그램을 작성 시, 가장 먼저 할 일은 새로운 쓰레드 생성이다. 쓰레드 생성을 위해서는 해당 인터페이스가 존재해야 한다. 우선 thread 라이브러리를 포함시켜야 한다. 그리고 std::thread 클래스의 thread_object를 만든다. thread_function에는 생성된 쓰레드가 실행할 함수가 들어간다. arg는 thread_function에 넘길 매개변수이다. 다만 thread_function 선언에 사용된 매개변수와 일치해야 한다. 다음은 예시 코드이다. #include #include void thread_function(int a, int b) { std::cout
OS
2020. 4. 13. 13:09
3장. 병행성 - 개요
이번 장에서는 프로세스를 위한 새로운 개념인 쓰레드(thread)를 소개한다. 프로그램에서 한 순간에 하나의 명령만을 실행하는 고전적인 관점에서 벗어나 멀티 쓰레드 프로그램은 하나 이상의 실행 지점(독립적으로 실행 가능한 Program Counter값)을 가지고 있다. 멀티 쓰레드와 프로세스의 차이가 있다면 주소 공간을 공유하기 때문에 동일한 값에 접근할 수 있다. 하나의 쓰레드 상태는 프로세스의 상태와 매우 유사하다. 쓰레드는 프로그램 카운터(PC)와 연산을 위한 레지스터들을 가지고 있다. 만약 두 개의 쓰레드(T1, T2)가 하나의 프로세서에서 실행 중이라면 실행하고자 하는 쓰레드(T1)는 반드시 문맥 교환(context switch)을 통해서 실행 중인 쓰레드(T2)와 교체되어야 한다. 문맥 교환은..
OS
2020. 4. 10. 12:49