자바 스 레 드 차단 방법 sleep()와 wait()의 전면적 인 설명

1.전기 기초 지식 비축
sleep()와 wait()방법 은 자바 에서 스 레 드 를 차단 하 는 방법 입 니 다.관심 있 는 독 자 는 필자 의 이전 글 인 을 참조 할 수 있다.그 중에서 자바 가 왜 스 레 드 블록 과 자바 에서 스 레 드 블록 을 야기 하 는 지 상세 하 게 설명 했다.
(1)스 레 드 의 수명 주기

이것 은 필자 가 구 글 사진 에서 찾 은 스 레 드 의 생명 주 기 를 간단하게 묘사 한 그림 이다.한 스 레 드 의 정상 적 인 생명 주기 에서'생 성','준비','운행','차단','운행','사망'등 몇 개의 생명 주 기 를 겪 을 수 있다.그 중에서'차단'은 우리 개발 자 들 이 매우 관심 을 가 져 야 하 는 것 이다.자바 가 제공 하 는 차단 방법 이기 때문이다.자원 과 스 레 드 의 가장 합 리 적 인 배 치 를 할 수 있 는데 그 중에서 sleep()와 wait()방법 은 자바 에서 스 레 드 차단 을 실현 하 는 관건 적 인 방법 이다.
(2)sleep()와 wait()방법의 스 레 드 를 막 는 장면
여기 서 두 번 째 사진 을 보면 이 사진 은 한 라인 의 전체 생명주기 에서 발생 하 는 각종'사건'과 호출 방법 을 상세 하 게 보 여 준다.
sleep()와 wait()방법의 차단 장면 을 정리 해 보 겠 습 니 다.

① sleep()스 레 드 차단 을 실현 하 는 방법 은'스 레 드 수면'이 라 고 부 르 는데 방식 은 시간 을 초과 하여 기다 리 는 것 입 니 다.어떻게 이해 합 니까?바로 sleep()가'수면 시간'을 전달 하 는 방법 으로 하 는 매개 변수 로 시간 이 되면'수면'에서'깨 어 나'는 것 이다.
② wait()방법 은 스 레 드 차단 을 실현 하 는 방법 으로 우 리 는'스 레 드 대기'라 고 부 르 는데 방식 은 두 가지 가 있다.
1)sleep()방법 과 마찬가지 로'수면 시간'을 매개 변수 로 전달 하면 시간 이 되면'깨 어 납 니 다'.
2)시간 을 입력 하지 않 고'무기한 대기'를 한 번 하고,notify()방법 으로 만'깨 우기'를 한다.
2.sleep()와 wait()의 차이
위의 두 폭 의 그림 의 전시 와 필자 의 관련 묘 사 를 통 해 독자 들 이 수면(sleep)과 wait()방법의 차이 점 중 하 나 는 바로 스 레 드 블록 을 실현 하 는 방식 이 다르다 는 것 을 믿 습 니 다.
그렇다면 sleep()와 wait()의 큰 차이 점 은 두 사람 이'동기 화 자 물 쇠 를 풀 었 는 지 여부'가 다르다 는 것 이다.우 리 는 다 중 스 레 드 개발 에서 서로 다른 스 레 드 간 의 동기 화 를 실현 하기 위해 동기 화 잠 금 방식 인 synchronized 즉,스 레 드 에서 하나의 자원 을 사용 할 때 잠 금 을 추가 하면 다른 스 레 드 는 그 자원 에 접근 할 수 없고 잠 금 을 풀 때 까지 방문 할 수 있다 는 것 을 잘 알 고 있다.
관심 이 있 는 독 자 는 필자 의 이전 글 인 에서 다 중 스 레 드 개발 에서 synchronized 를 이용 하여 스 레 드 동기 화 를 실현 하 는 방식 을 상세 하 게 소개 했다.
sleep()와 wait()두 가지 방법 을 사용 하면'CPU 실행 권'과'동기 잠 금'에 대한 방식 이 다 릅 니 다.
① sleep()는 CPU 실행 권 을 방출 하지만 동기 화 자 물 쇠 를 방출 하지 않 는 다.
② wait()는 CPU 실행 권 을 방출 하고 동기 화 자 물 쇠 를 방출 하여 다른 스 레 드 가 동기 화 제어 블록 이나 방법 을 사용 할 수 있 도록 합 니 다.
이상 은 sleep()와 wait()방법의 두 가지 관건 적 인 차이 이다.
요약:다음 표를 이용 하여 sleep()와 wait()의 모든 차 이 를 보 여 줍 니 다.

ps:블 로 거들 의 정정 에 감 사 드 립 니 다.여기 서 수정 합 니 다:wait()는 Object 기본 클래스 의 방법 입 니 다.호출 할 때 도 이상 을 포착 해 야 합 니 다.다음은 wait()가 던 질 수 있 는 이상 입 니 다.

PS:그림 으로 설명 할 수 있 는 문 제 는 그림 으로 설명 하고 표 로 설명 할 수 있 는 문 제 는 표 로 설명 합 니 다.이렇게 이해 하면 매우 뚜렷 합 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기