집 >Java >Java인터뷰 질문들 >Java 멀티 스레딩 인터뷰 질문 답변을 포함한 객관식 질문
1. 다음 프로그램의 실행 결과()(하나 선택)
public static void main(String[] args) { Thread t=new Thread(){ public void run(){ pong(); } }; t.run(); System.out.println("ping"); } static void pong(){ System.out.println("pong"); }
A.pingpong
B.pingpong과 pongping 모두 가능
D.
답변: B
분석: 스레드를 시작하려면 start() 메서드를 호출해야 하며, t.run() 메서드는 개체 이름을 사용합니다. 분석: 스레드를 시작하려면 start() 메서드 및 t.run() 메서드는 개체 이름을 사용합니다.
2. 다음 중 실행 가능한 클래스를 만드는 데 사용할 수 있는 메서드는 무엇입니까? ()
A. Thread{public void run() {…}}
C. public class () {… 스레딩을 수행하려면 다음 중 스레드가 차단 상태로 들어가지 않도록 하는 방법을 사용하세요. ()A.sleep()
C.wait()
D.
답변: D
분석: Yield로 인해 스레드가 준비 상태로 전환됩니다
4. sleep() 및 wait()에 대해 다음과 같은 잘못된 설명은 ()
A입니다. 스레드 클래스(Thread)의 메서드, wait는 Object 클래스의 메서드
B. Sleep은 개체 잠금을 해제하지 않고, wait는 개체 잠금을 포기합니다
C. Sleep은 스레드를 일시 중지하지만 모니터링 상태는 여전히 유지됩니다. 유지되며 end
D 후에 자동으로 재개됩니다. Wait 후 대기 중인 잠금 풀에 들어가고 이 개체에 대한 알림 메서드만 발행한 다음 개체 잠금을 획득하고 실행 상태로 들어갑니다.
답변: D
분석: 이 개체에 대한 알림 메서드 후에 개체 잠금이 획득되고 실행 상태가 아닌 준비 상태로 들어갑니다. 또한 이 개체에 대한 informAll 메서드는 개체 잠금을 획득하고 실행 상태 대신 준비 상태로 들어갈 수도 있습니다.
5. 다음 잠금 메커니즘 중에서는 스레드 안전성을 보장할 수 없습니다. ()
A.
B .Synchronized
C. Volatile
답변: C6. 프로세스를 생성하는 데 필요한 단계는 ()
A입니다. B. 프로세스 제어 블록을 생성합니다
C. 프로세스에 메모리를 할당합니다.
답변: BC7. 프로그램 작성? ()
A.Atomic Addition을 사용할 수 있습니다B. 단 하나의 생산자와 하나의 소비자만 있으면 링 버퍼(Ring Buffer)
C에 대한 잠금 없는 액세스를 얻을 수 있습니다. Copy-Update), 이전 복사본과 새 복사본 전환 메커니즘, 지연된 릴리스를 이전 복사본에 사용할 수 있습니다
D. CAS(비교 및 교체), 잠금 없는 스택, 잠금 없는 대기열 대기
답변 : D분석: A 이 방법은 별로 좋지는 않지만 일반적입니다B ProducerConsumerQueue는 이것이고 어디에나 있습니다
C Linux 커널에서 널리 사용됩니다D 본질적으로 낙관적 잠금이며, 운영이 매우 어렵습니다. 단일 생산자와 다중 소비자 또는 다중 생산자와 단일 소비자를 갖는 것이 더 일반적이며 ABA 문제가 발생하기가 쉽지 않습니다.
B ProducerConsumerQueue는 이것이고 어디에나 있습니다.
C는 리눅스 커널에서 널리 사용됩니다.
D 본질적으로 낙관적 잠금이며 작동이 매우 어렵습니다. . 단일 생산자와 다중 소비자 또는 다중 생산자와 단일 소비자의 경우에 더 흔하며 ABC 문제를 접하기가 쉽지 않습니다
위 내용은 Java 멀티 스레딩 인터뷰 질문 답변을 포함한 객관식 질문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!