| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- gas
- gameplay ability system
- MAC
- 언리얼 엔진
- Replication
- widget
- listen server
- os
- unity
- 언리얼엔진
- rpc
- Multiplay
- animation
- 게임 개발
- Aegis
- Unreal Engine
- linear regression
- photon fusion2
- local prediction
- CTF
- gameplay effect
- gameplay tag
- 보안
- 게임개발
- 유니티
- stride
- ability task
- attribute
- UI
- C++
- Today
- Total
목록condition variable (2)
Replicated
뮤텍스한 번에 하나의 스레드만 임계 영역에 진입할 수 있도록 하는 락 메커니즘 특징- 이진 상태(잠금, 해제)로 동작- 뮤텍스를 소유한 스레드만 해제할 수 있음- 주로 단일 리소스 보호에 사용 세마포어지정한 수의 스레드가 동시에 임계 영역에 진입할 수 있도록 허용하는 카운터 기반의 동기화 도구 특징- 정수 값을 가지며, 공유 자원의 개수를 나타냄- 스레드는 세마포어의 값을 감소시키며 진입, 작업이 끝나면 값을 증가시켜 다른 스레드가 진입할 수 있도록 함- 뮤텍스보다 더 일반적인 형태의 동기화 도구 그럼 조건 변수(Condition Variable)는?락은 상호 배제를 위해, 조건 변수는 동기화를 위해 사용함 int done = 0;pthread_mutex_t m = PTHREAD_MUTEX_INITIA..
락은 상호배제를 위해서 조건변수는 동기화를 위해서 void *child(void *arg) { printf("child\n"); return NULL; } int main(int argc, char *argv[]) { printf("parent: begin\n"); pthread_t c; pthread_create(&c, NULL, child, NULL); printf("parent: end\n"); return 0; } 부모 스레드와 자식 스레드 중 무엇이 먼저 끝날지 알 수 없음. volatile int done = 0; void *child(void *arg) { printf("child\n"); done = 1; return NULL; } int main(int argc, char *argv[])..