자바 인터뷰 질문, 15 멀티 스레드 자바 인터뷰 질문 및 답변

15 개 멀티 스레드 자바 인터뷰 질문과 답변
자바, 단계를 거쳐야 성공적인 프로그래머가 재단의 완성 인터뷰의 진짜 시작이다라고 할 수있다. 대답 인터뷰 기술은 빠르고 정확한 답변은 매우 중요하다 회사가 당신에게 좋은 인상을 만들 수 있습니다. 다음은 인터뷰 질문 내가 멀티 스레드 자바 요약 아이디어의 일부를 대답합니다.
1, 지금은 T1, T2는 T3 세 개의 스레드, 당신은 어떻게 T2에서의 실행의 구현 후 T1, T3에서의 실행의 구현 후 T2가 어떻게 보장 할 수 있습니까?
이 질문은 일반적으로 첫 라운드 또는 전화 인터뷰 단계에서 스레드를 요청합니다, 목적은 당신이 "가입"방법을 잘 알고있는 여부를 감지하는 것입니다. 답변 방법을 가입 할 수 있습니다.
2, 자바 잠금 우위 인터페이스를 통해 어떤 블록을 동기화? 여러 사용자가 읽을 수있는 효율적인 캐싱을 구현해야합니다,하지만 당신은 그것을 달성하기 위해 무엇을 할 것, 무결성을 유지하기 위해, 쓰기에 사용자를 할 수 있습니다?
잠금 인터페이스 멀티 스레딩 그들이 읽기 잠금을 제공하고 쓰기가 각각 당신은 고성능 데이터 구조 및 ConcurrentHashMap의 같은 장애물의 조건을 쓰기 만날 수있는 동시 프로그래밍의 가장 큰 장점이다. 나는 그것이 전자 거래 시스템을 캐싱 클라이언트 측을 구축하고 멀티 스레드 인터뷰에 참석하기 위해 연결하기 전에 공간을 거래 광범위하게 사용되는 현재 때문에 신중하게, 자물쇠를 읽어 보는 것이 좋습니다.
3, 자바 방법에 대기하고 잠을 제외시켰다?
일반적으로 자주 전화 인터뷰 Java 스레드 인터뷰 질문에 물었다. 잠금을 해제하려고 대기하는 수면 잠금을 보유하고있는 동안 가장 큰 차이점은 대기입니다. 일반적으로 스레드 간 상호 작용에 사용되는 잠깐, 수면은 종종 실행을 일시 정지하는 데 사용됩니다.
4, 자바 블로킹 큐 달성했다.
이것은 많은 목적을 달성 할 수있는, 상대적으로 어려운 면접 질문은 멀티 스레드입니다. 첫째, 검색 할 수 있는지 여부 실제로 Java 스레드에서 쓰기 프로그램 할 수있는 후보, 두 번째는, 동시성 시나리오의 이해 후보를 '감지 할 수 있으며,이에 따라 많은 질문을 요청할 수 있습니다. 그는 대기와 큐를 차단 달성 ()와 () 메소드를 통지하는 경우, 다시 작성하는 자바 5의 동시 클래스의 최신을 사용하는 그에게 요청할 수 있습니다.
소비자 문제 - 5, 생산자를 해결하기 위해 코드를 작성 자바를 사용합니다.
아주 위의 문제와 유사하지만, 문제는 더 클래식, 인터뷰는 다음과 같은 질문을 할 때가있다. 자바 생산에 해결하는 방법 - 소비자 문제, 물론, 많은 솔루션은 내가 대기열을 차단하여 구현하는 방법을 공유 할 필요가있다.
6, 자바 프로그래밍은 프로그램의 교착 상태로 이어질 것입니다, 당신은 어떻게 해결 될 것인가?
이는 멀티 스레드 프로그램을 작성하는 것은 매우 일반적이지만 경우에도 나의 마음에 드는 인터뷰 질문 자바 스레드 교착 쓰기 무료 코드를 교착 수 많은 후보, 그들은 어려움을 겪고 있기 때문이다. 그냥 당신이 자원과 N N 스레드를 가지고 그들에게, 당신은 작업을 완료하기 위해 모든 자원이 필요합니다. n은 2 교체 할 수있다 여기 단순화하기 위해, 더 큰 데이터가 더 복잡한 문제를 볼 것이다. 자바로 교착 상태를 피함으로써 교착 상태에 대한 자세한 정보를 얻을 수 있습니다.
7. 자바 무엇에 원자, 원자 작업 무엇입니까?
아주 간단한 자바 인터뷰 질문 스레드, 다음 질문은 원자 작업을 동기화해야한다는 것입니다.
8, 자바 무엇에 휘발성 키는 역할은 무엇입니까? 어떻게 사용 하는가? 자바에서는 동기화 방법이 차이점은 무엇입니까?
자바 5와 자바 메모리 모델 변경 때문에, 스레딩 문제 휘발성 키워드 점점 더 인기를 기반으로. 동시 환경에서 그 휘발성 변수의 가시성, 질서와 일관성을 유지하는 방법에 대한 질문에 대답 할 준비가되어 있어야합니다.
9. 경쟁 조건은 무엇인가? 어떻게 식별하고 경쟁을 해결하는 방법은 무엇입니까?
이는 멀티 스레드 면접 질문의 고급 단계에 표시됩니다. 대부분의 면접 발생할 가장 가까운 경쟁 조건을 물어볼 것입니다, 당신은 어떻게 해결 않았다. 언젠가는 간단한 코드를 작성하고 당신이 경쟁 상태 코드를 감지하게됩니다.
10, 당신은 어떻게 스레드 덤프를 사용해야합니까? 어떻게 스레드 덤프를 분석 할 것인가?
UNIX에서, 당신은 죽일 -3 사용할 수 있습니다, 다음 스레드 덤프는 "CTRL + 브레이크"를 사용할 수있는 창에서 로그를 인쇄합니다. 그가 어떻게 그것을 분석하기 위해 요청하는 경우 매우 간단하고 전문 스레드 면접 질문,하지만, 매우 까다로운 일이 될 것입니다 필요가 심각하게 고려해야한다.
11, 우리는 왜 시작을 () 메소드가, 왜 우리가 직접 run () 메소드를 호출 할 수 없습니다 때 run () 메소드를 수행 부릅니까?
이것은 매우 고전적인 멀티 스레드 자바 인터뷰 질문입니다. 이것은 그냥 시간을 혼동 멀티 스레드 프로그램을 작성하기 시작했습니다 것입니다. 이 질문에 대한 답은 시작 () 메서드를 호출 할 때 새 스레드를 만들고 run () 메소드의 내부에서 코드를 실행, 다음과 같이해야한다. 그냥 run () 메소드를 호출하는 경우, 그것은 호출 스레드 코드를 수행하지 않는 새 스레드를 만들지 않습니다.
(12)는, 자바 어떻게하면 차단 된 스레드를 깨워합니까?
이 스레드와 까다로운 차단에 문제가, 많은 솔루션을 제공합니다. 당신은 IO를 차단 스레드가 발생하고, 경우에 나는 스레드를 중단 할 수있는 방법이라고 생각하지 않습니다. 호출이 기다려야하기 때문에 스레드가 차단 된 경우 (), 수면 () 또는 조인 () 메소드가 발생, 당신은 스레드를 중단 할 수 있으며, 예외 : InterruptedException을 던지는하여 깨워.
13. 자바 CycliBarriar과 해, CountDownLatch의 차이점은 무엇입니까?
이 스레드 문제는 주로 당신이 JDK5와 계약을 잘 알고있는 여부를 감지하는 데 사용됩니다. 이 두 가지 차이점은으로 CyclicBarrier 재사용 장애물 통과되었습니다하지만 CountDownLatch를 다시 사용할 수 없습니다.
14, 불변의 객체는 동시 응용 프로그램이 도움이 될 것, 무엇을 쓰기입니까?
또 다른 멀티 스레드 고전적인 면접 질문, 직접 스레드와 관련이 있지만, 간접적으로 많은 도움이되지. 그는 문자열은 불변 이유를 불변의 객체를 작성하거나 부탁을 요구한다면,이 자바 인터뷰 질문은 매우 까다로운 될 수 있습니다.
(15), 다중 스레드 환경에서 일반적으로 어떤 문제가 발생할 무엇입니까? 당신은 어떻게 그것을 해결 했습니까?
멀티 스레딩과 동시 프로그램은 종종 메모리 인터페이스, 경쟁 상태, 교착 상태, 라이브 잠금과 기아의 만남이있다. 문제는 당신이 잘못을 얻는 경우에, 그것을 발견하고 디버깅하기 어려울 것이다, 충분하지 않습니다. 이것은 대부분의 Java는 실제 응용 프로그램에 따라 문제를 스레딩보다는 인터뷰를 기반으로합니다.
이들은 포괄적이지 스레드 몇 가지 간단한 인터뷰 질문이지만, 도움에 희망 당신은 더 많은 개인 편지는 내가 얻을 질문에 직면 할 수있다!

추천

출처blog.51cto.com/14623707/2463485