멀티 스레딩은 Java에서 불가피하고 중요한 주제입니다. 아래에서는 멀티 스레딩 학습을 개발할 것입니다. 다음 컨텐츠는 "JDK에 JUC 패키지 추가"에 대한 설명입니다.
참고 : JUC 패키지는 Java.util.concurrent 패키지를 말하며 Java Master Doug Lea가 수행하고 JDK 1.5 버전의 Java에 추가됩니다.
다음 장의 연구를 시작하기 전에 먼저 멀티 스레딩의 관련 개념을 이해하십시오.
스레드 상태 다이어그램
설명 :
스레드에는 다음 5 개 상태가 포함됩니다.
1. 새로운 상태 : 스레드 객체가 생성 된 후 새 상태로 들어갑니다. 예를 들어, 스레드 스레드 = 새 스레드 ()입니다.
2. 런 가능 : "실행 가능 상태"라고도합니다. 스레드 객체가 생성 된 후 다른 스레드는 객체의 start () 메소드를 호출하여 스레드를 시작합니다. 예를 들어, Thread.Start (). 준비 상태의 스레드는 언제든지 CPU에 의해 실행 될 수 있습니다.
3. 실행 상태 (실행) : 스레드는 실행에 대한 CPU 권한을 얻습니다. 스레드는 준비 상태에서만 실행중인 상태 만 입력 할 수 있습니다.
4. 차단 된 상태 : 차단 된 상태는 스레드가 어떤 이유로 CPU 사용 권한을 포기하고 일시적으로 실행을 중지한다는 것을 의미합니다. 스레드가 준비 상태에 들어가기 전까지는 달리기 상태로 갈 기회가 없습니다. 막힘에는 세 가지 유형이 있습니다.
(01) 차단 대기 - 스레드의 Wait () 메소드를 호출하여 스레드가 특정 작업의 완료를 기다리게하십시오.
(02) 동기화 된 차단-스레드는 동기화 된 동기화 잠금을 얻지 못합니다 (잠금이 다른 스레드에 의해 점유되기 때문에) 동기화 된 차단 상태로 들어갑니다.
(03) 기타 차단-스레드는 스레드의 sleep () 또는 join ()을 호출하거나 I/O 요청을 발행하여 차단 상태로 들어갑니다. Sleep () State가 시간이 초과되면 join ()는 스레드가 끝나거나 시간이 끝나기를 기다렸거나 I/O 처리가 완료되면 스레드가 준비 상태에 다시 들어갔습니다.
5. Dead State : 스레드가 예외로 인해 Run () 메소드를 실행하거나 종료했으며 스레드는 수명주기를 종료합니다.
이 5 개 주와 관련된 내용에는 객체 클래스, 스레드 및 동기화 된 키워드가 포함됩니다. 우리는 다음 장 에서이 내용을 하나씩 배울 것입니다.
Object Class, Wait (), notify (), notifyall () 등과 같은 수면/웨이크 함수를 정의합니다.
스레드 클래스는 일부 열 스레드 작동 함수를 정의합니다. 예를 들어, sleep () sleep 함수, 인터럽트 () 인터럽트 함수, getName ()가 스레드 이름을 가져옵니다.
동기화는 키워드입니다. 동기화 된 기능은 스레드가 객체의 동기화 잠금을 얻을 수 있도록하는 것입니다.
wait (), notify () 및 기타 메소드를 나중에 소개하면 나중에 "Wait (), notify () 및 기타 메소드가 스레드 클래스가 아닌 객체 클래스에서 정의 해야하는 이유를 분석합니다.