>  기사  >  Java  >  Java 스레드 상태는 무엇입니까?

Java 스레드 상태는 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2020-12-15 15:10:0415449검색

Java 스레드 상태: 1. 새로운 상태 2. 실행 가능 상태 3. 실행 중 상태 4. 차단됨 상태 5. 사망 상태.

Java 스레드 상태는 무엇입니까?

이 문서의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터, Java 버전 8.0.

java 스레드 상태:

1. 새로운 상태(New): 스레드 객체가 생성된 후 새로운 상태로 들어갑니다.

예를 들어 스레드 스레드 = 새 스레드()입니다. Thread thread = new Thread()

2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。

3. 运行状态(Running): 线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。

4. 阻塞状态(Blocked): 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:

  • (01) 等待阻塞 -- 通过调用线程的wait()方法,让线程等待某工作的完成。

  • (02) 同步阻塞 -- 线程在获取synchronized同步锁失败(因为锁被其它线程所占用),它会进入同步阻塞状态。

  • (03) 其他阻塞 -- 通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。

5. 死亡状态(Dead): 线程执行完了或者因异常退出了run()

2. 준비 상태(실행 가능):

"실행 가능 상태"라고도 합니다. 스레드 객체가 생성된 후 다른 스레드는 해당 객체의 start() 메서드를 호출하여 스레드를 시작합니다. 예를 들어 thread.start()입니다. 준비 상태의 스레드는 언제든지 CPU에 의해 실행되도록 예약될 수 있습니다.

3. 실행 상태(Running):
스레드가 실행을 위해 CPU 권한을 얻습니다. 스레드는 준비 상태에서만 실행 상태로 들어갈 수 있다는 점에 유의해야 합니다. 🎜🎜🎜4. 차단됨: 🎜 차단된 상태는 스레드가 어떤 이유로 CPU 사용 권한을 포기하고 일시적으로 실행을 중지함을 의미합니다. 스레드가 준비 상태에 들어갈 때까지 실행 상태로 이동할 기회가 있습니다. 차단 상황에는 세 가지 유형이 있습니다. 🎜
  • 🎜(01) 차단 대기 - 스레드의 wait() 메서드를 호출하여 스레드가 대기하도록 합니다. 특정 작업의 완료. 🎜
  • 🎜(02) 동기 차단 -- 스레드가 동기화된 동기화 잠금을 획득하지 못한 경우(다른 스레드가 잠금을 점유하고 있기 때문에) 동기화 차단 상태로 들어갑니다. 🎜
  • 🎜(03) 기타 차단 -- 스레드는 스레드의 sleep() 또는 Join()을 호출하거나 I/O 요청을 발행하여 차단 상태에 들어갑니다. sleep() 상태가 시간 초과되거나, Join()이 스레드가 종료될 때까지 기다리거나 시간 초과되거나, I/O 처리가 완료되면 스레드는 준비 상태로 다시 들어갑니다. 🎜
🎜🎜5. 종료 상태(Dead): 🎜스레드가 예외로 인해 실행을 완료했거나 run() 메서드를 종료했으며 스레드의 수명이 종료되었습니다. 주기. 🎜🎜🎜관련 무료 학습 권장사항: 🎜Java 기본 튜토리얼🎜🎜🎜

위 내용은 Java 스레드 상태는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.