자바 Bounded-Buffer 코드 질문 있습니다.
305
1 câu hỏi đã được viết
안녕하세요. 좋은 강의 잘 듣고 있습니다.
다름이 아니라 해당 부분 자바 코드에서 의문점이 있어 질문 드려봅니다.
synchronized 식별자를 붙인 메서드가 여러 개 있을 때 모니터 락이 각 메서드별로 생기는지 혹은 전체를 관리하는 하나의 모니터 락만 생기는지가 전 강의에서 언급이 되었는지 모르겠지만, 잘 기억이 안나서,, 두 케이스 모두 질문이 드립니다.
모니터 락이 각 메서드별로 생기는 경우
take와 give는 count라는 공유 변수에 접근하고 있다고 생각됩니다. synchronized를 통해 각 메서드별로 mutual exclusive가 지켜지지만, take와 give 사이에서는 race condition 문제가 발생하지는 않나요 ?? 예를 들어 buffer size = 3, count = 1인 경우 give와 take가 동시에 실행될 수 있고, count++과 count--에서 race condition 문제가 발생할 수 있다고 생각했습니다. 직접 테스트 해 본 결과 해당 문제는 발생하지 않았는데, 왜 그런지가 궁금합니다.
모니터 락이 전체를 관리하는 하나만 생기는 경우
하나의 메서드에서 무한정 대기하는 경우가 생길 것 같습니다. 아마 첫 번째 케이스가 맞다고 생각하지만 혹시라도 두 번째 케이스라면, take에서 count=0일 때 while문 안에서 wait()을 하는데, give 메서드가 실행이 되지 않으니 무한정 대기할 것이라고 생각됩니다.
쓰다보니 굉장히 길어졌습니다 ㅜㅜ.. 읽어주셔서 감사합니다.
Câu trả lời 0
컨텍스트 스위칭과 PCB
0
146
1
퀴즈 답지
0
215
1
자바 serversocket 관련 질문입니다.
0
152
1
운영체제 공룡책 사려고하는데 원서랑 번역본 중에 어느걸 더 추천하시나요?
0
516
1
java 소켓 통신 예제 질문
0
257
1
코드가 실행이 안됩니다
0
279
1
강사님. 수료 기준이 있을까요?
0
643
1
강의 ppt 제공
0
502
1
강의에서 사용된 Source code는 어디서 볼 수 있을까요?
0
329
1
퀴즈 1번 2번
0
416
2
24:35초에 설명하는 time-sharing이 책에서 다루는 내용과 달라요.
0
396
1
window10 이 아니면 안되나요??
0
692
1
피터슨 알고리즘과 compare_and_swap 명령어 질문입니다
0
581
1
chapter3. Processes(1) pid_t 정의되지 않은 타입
0
655
1
스택 영역의 크기는 정적인가요? 동적인가요?
0
1510
1
코드를 실행할 떄
0
348
1
wsl 오류
0
395
2
ubuntu 에러가 뜹니다.
0
2169
1
멀티 프로세싱 vs 멀티 프로그래밍
1
1258
1
데드락 질문
0
388
1
semaphore 로우레벨 코드 질문
0
506
1
1.운영체제가 뭐길래 7분 58초 질문이요
0
749
1
데드락 관련 질문입니다.
1
515
1
좀비 프로세스와 고아 프로세스
1
1115
1

