1. 스레드 풀의 상태는 어떤가요?
스레드 풀에는 실행 중, 종료, 중지, 정리 중, 종료됨의 5가지 상태가 있습니다.
스레드 풀 상태 전환 프레임 다이어그램:
(추천 비디오 튜토리얼: java video)
2. 스레드 풀의 submit() 메소드와 Execute() 메소드의 차이점은 무엇입니까?
수신된 매개변수가 다릅니다.
제출에는 반환 값이 있지만 실행은 그렇지 않습니다.
제출은 예외 처리에 편리합니다.
3. Java 프로그램에서 멀티 스레드의 안전한 작동을 보장하는 방법은 무엇입니까?
스레드 안전성은 세 가지 측면에 반영됩니다.
원자성: 상호 배타적인 액세스를 제공하며 동시에 하나의 스레드만 데이터에 대해 작업할 수 있습니다(원자적, 동기화).
가시성: 하나의 스레드가 주 메모리에 액세스할 수 있습니다. 시간에 맞춰 다른 스레드에서 볼 수 있습니다(동기화, 휘발성).
질서: 한 스레드가 다른 스레드의 명령 실행 순서를 관찰합니다. 명령 재정렬로 인해 관찰 결과는 일반적으로 지저분하고 무질서합니다. ).
(추천 관련 튜토리얼: java 입문 프로그램)
4. 멀티 스레드 잠금 업그레이드의 원리는 무엇인가요?
Java에는 상태 비저장 잠금, 편향 잠금, 경량 잠금 및 중량 잠금 상태의 4가지 잠금 상태가 있습니다. 잠금은 업그레이드할 수 있지만 다운그레이드할 수는 없습니다.
잠금 업그레이드 과정 그림:
5. 교착 상태란 무엇인가요?
교착 상태는 실행 중 둘 이상의 프로세스 간에 리소스 경쟁이나 통신으로 인해 발생하는 차단 현상을 의미합니다. 이때 시스템이 교착 상태에 있거나 시스템에 교착 상태가 발생했다고 합니다. 이러한 프로세스들이 항상 서로를 기다리고 있는 것을 교착 상태 프로세스라고 합니다.
추천 튜토리얼: java 인터뷰 질문
위 내용은 2020 새로운 Java 면접 질문 - 멀티스레딩 (3)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!