inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]

synchronized 블록 동기화

synchronized 블록 동기화 마지막 예제

268

비오

작성한 질문수 55

1

데드락 걸릴 수 있을거 같은데 맞나요?
thread a: accountA.lock
thread b: accountB.lock

thread a : accountB.lock (대기)

thread b: accountA.lock (대기)

java 동시성 multithread synchronisation

답변 2

0

정수원

해당 예제는 데드락용 예제가 아니고 모니터 락에 대한 예제입니다

각 스레드마다 획득한 모니터에 대해 스레드간 동일한 모니터로 접근이 가능한지 여부를 설명하기 위한 예제입니다

데드락에 해당하는지 여부는 이 예제에서는 중요하지 읺습니다

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

질문하신 내용에 대한 구체적인 자료는 제공된 정보 중에서 찾을 수 없으나, 일반적으로 자바에서 데드락은 두 개 이상의 스레드가 서로가 보유하려고 하는 리소스의 잠금을 기다리면서 발생할 수 있습니다. 질문하신 예제 상황에서는 스레드 a와 스레드 b가 각각 다른 객체의 잠금을 보유한 채, 서로가 필요로 하는 다른 객체의 잠금을 기다리고 있기 때문에 데드락이 발생할 수 있는 상황으로 보입니다. 각 스레드가 이미 가지고 있지 않은 리소스를 요구하면서 서로가 서로의 진행을 막는 이런 상황은 데드락의 전형적인 예입니다.

데드락을 방지하기 위한 다양한 기법이 있으며, 가장 흔히 사용되는 방법 중 하나는 리소스에 대한 접근 순서를 정해 두고 모든 스레드가 그 순서에 따라 리소스에 접근하게 하는 것입니다. 또한, 자바 java.util.concurrent 패키지에서 제공하는 고급 동시성 메커니즘을 활용하면 데드락을 더욱 효과적으로 관리하고 예방할 수 있습니다.

멀티스레드 단일스레드

0

56

0

new Condition 부분 질문

0

83

1

13:00 강의 내용 이해 질문

0

99

1

강의 출시 질문 있습니다.

0

117

1

InterruptedExceptionThreadStopExample 질문입니다.

0

94

2

instance.getMyField()의 값이 왜 다른가요?

0

115

1

해당 강의 내용 무단 도용 신고

0

211

2

Thread Waiting 상태 관련 질문 드립니다.

0

186

1

단일연산변수 api

0

126

0

synchronized 블럭과 메인메모리 반영

0

147

0

실무에서 자바가 제공하는 락을 사용하는 경우

1

243

1

뮤텍스나 세마포어는 busy waiting이 없는 게 맞을까요?

0

159

1

16:50부분에서 타입락 질문드립니다.

0

110

2

16분 7초 뮤텍스 코드 관련해 질문드립니다.

0

160

2

동기화가 보장된다고 하더라도 스레드간 데이터 불일치가 발생할 수 있지 않나요??

0

199

2

리액티브-part2

0

180

2

문자열 풀 값을 이용한 String 변수

0

207

2

스레드 라이브러리는 커널과 같은 역할을 하지 못하나요?

0

173

1

자식 프로세스를 쓰는 이유

0

186

1

커널 모드 전환시 질문이 있습니다!

0

146

1

[공유] setName 시 threadName이 1부터 시작하는 이유

0

178

1

synchronized = 모니터

0

285

2

Thread의 Context Switching 문의드립니다.

1

257

1

동기 & 논블록킹 질문 드립니다.

0

232

2