32:55초 질문 있습니다.
307
작성한 질문수 38
32:55초
28째줄 (jobtimer.cpp 궁금한게 있습니다.)
28번째 줄에 WRITE_LOCK 하기전에 중괄호를 쳤는데
어떤 상황에 의해 LOCK 잡은 곳(괄호)을 지나서
그 괄호 밖의 for문이 실행될 수 있다는 말인가요?
그래서 _distributing 으로 막는거라 이해 하면 되는건가요?
괄호가 없음 상관이 없을까요?
답변 1
1
멀티쓰레드 환경이라면 같은 함수를
여러 쓰레드가 막 동시에 호출할 수도 있는데요.
어떤 쓰레드에서 함수 흐름대로 쭉 실행해서 LOCK을 지나치게 아래부분을 실행하는데
다른 쓰레드가 동시에 실행되면 LOCK 관련 부분을 실행하고 있을 수 있겠죠.
전체 LOCK을 잡으면 이 문제는 해결되지만
대신 한 애가 실행할 때 다른 애들은 아예 실행을 못하고 대기하게 됩니다.
0
아 제가 궁금한점이 { } 괄호를 기준으로 Lock 잡히는 건지 lock 잡은 부분부터 --- 함수의 } 괄호가 보일때까지 잡힌건지
잘 모르겠어서 질문드렸네요. 찾아보니 {} 괄호기준(scope)으로 잡히는것 같은데 맞는가요?
아 해보니깐 괄호기준이 맞네요.,
2번 들으려고 계속 눈팅만 했더니...
void Add() {
{
lock_guard<mutex> guard(m);
for (int i = 0; i < 10; ++i) {
sum++;
cout << "a : " << sum << endl;
}
}
for (int i = 0; i < 20; ++i) {
sum++;
cout << "c : " << sum << endl;
}
}
void Sub() {
{
lock_guard<mutex> guard(m);
for (int i = 0; i < 10; ++i) {
sum--;
cout << "b : " << sum << endl;
}
}
}
해결되었습니다!!^^
IocpObject가 없어질 수 있는 이유에 대한 질문입니다.
0
28
2
CS 기초 지식이 필요없는 세상이 오지 않을까요?
0
136
2
DeadLock 탐지에서 재귀 Lock 상황에 대해 궁금합니다.
0
92
2
LockFreeStack #2에서 ABA 문제
0
64
1
RefCounting 강의 질문있습니다.
0
86
2
writeLock을 잡을때 꼭 empty 상태여야하는 이유?
0
103
2
Memory Pool에서 오버플로우 질문입니다.
0
119
2
포토폴리오 및 진로 관련하여 고민입니다.
0
227
1
포토폴리오 관련 고민입니다.
0
130
1
실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.
0
139
2
성능 테스트 결과
0
140
2
게임 서버 Stateful, Stateless 진로 고민
0
178
1
WaitOnAddress와 Sleep의 차이 질문
0
132
1
궁금한거 있습니다.
0
120
2
JobTimer 구동 스레드
0
149
2
TryPop() 동작 관련 질문
0
112
1
로드맵 C#서버 C++서버 방향성 질문
0
202
2
스레드 id를 출력할떄 메인스레드 id도 출력되나요?
0
99
1
생명주기를 위한 의도적 복사
0
122
2
락프리의 실무에서 사용 질문
0
190
2
32bit threadID와 16비트 상위 WriteFlag에 대해
0
134
2
mutex와 sleep 차이점
0
155
1
실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다
0
198
2
Stomp Allocator의 Release함수에 대한 질문입니다.
0
125
1





