inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

interrupt() - 1

interrupt 스레드 시작안했는데도 걸리나요

221

아무거나123

작성한 질문수 10

0

CleanShot 2024-05-09 at 23.19.12.pngCleanShot 2024-05-09 at 23.20.47@2x.pngsleep 1초 동안 thread1 시작도 안했었는데,

어떻게 thread2에서 thread1을 interrupt 해서 결과가 true인지 궁금합니다.

다시 말해서 아직 시작도 안한 스레드를 어떻게 interrupt 한걸까요?

java 동시성 multithread synchronisation

답변 2

0

정수원

인트럽트 상태는 스레드의 속성으로서 thread1.interrupt() 하는 순간 속성값이 변경됩니다

비록 스레드 1 이 시작하지 않더라도 객체의 속성을 변경하는 것은 가능합니다

0

인프런 AI 인턴

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

자바에서는 스레드가 시작되기 전에 interrupt 상태를 설정할 수 있습니다. 스레드가 실제로 시작되지 않았더라도, interrupt() 메서드를 호출하면 해당 스레드의 interrupt 상태가 true로 설정됩니다. 이후 스레드가 시작되면, 이 interrupt 상태는 여전히 유지되어 있으며, 스레드 내에서 해당 상태를 확인할 수 있습니다.

따라서, 스레드1이 시작되기 전에 스레드2에서 interrupt() 메서드를 호출하는 경우, 스레드1의 interrupt 상태가 true로 설정되고, 스레드1이 나중에 실행될 때 해당 상태를 확인하면 true로 나타나게 됩니다.

이러한 방식을 통해, 프로그램의 다양한 부분에서 스레드의 실행 상태를 제어하거나 체크할 수 있게 되며, 특히 복잡한 동시성 관리나 자원 정리 작업에서 유용하게 사용됩니다.

멀티스레드 단일스레드

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