박람회 :Java Threads에 대해 생각하는 방법? 일명 Thread.stop
나는 자바 VM이 굉장하다고 생각한다. 바이트 코드, 표준 라이브러리의 안전성을 보장합니다 ... 놀라운 점은 자바 클래스를 즉시로드 할 수있는 능력과 VM을 충돌시킬 수 없다는 것입니다 (* .so 파일 또는 커널 모듈). 자바를 처리하는 방법을 이해하지 않습니다
한 가지, 내가 http://java.sun.com/j2se/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html 을 읽은 Thread.stop를
이지만 다음과 같은 이유로 이상한 것 같다
1) 자원 관리
유닉스 OS에서, 프로세스가 자원을 늘리고 있다면, 나는 그것을 죽일 수있다. 추상화의
2 ) 속보는 :
나는 많은 계산 작업을 시작하면, 나는 더 이상 계산을 필요로하지, 내가 죽일 수 -9를. 이 Java 스레딩 모델에서 내 계산 스레드은 정기적으로 부울 플래그를 확인하여 종료해야하는지 여부를 확인해야합니다. [이것은 추상화 레이어를 깨뜨린 것처럼 보입니다. 계산 코드를 작성할 때 계산 코드에만 집중해야합니다. 어디에서 종료해야하는지에 대한 점검을 펼칠 곳. 잠금의
3) 안전/모니터
그래서 공식적인 이유는 "어떤 스레드가 잠금/모니터를 보유하고 Thread.stopped을 가져옵니다 객체가 손상된 상태로 남아있을 것입니까?"입니다 - 아직 , 운영 체제에서 이것은 문제가되지 않습니다. 우리는 인터럽트 핸들러를 가지고 있습니다. 자바 쓰레드가 OS 인터럽트 핸들러처럼 작동하는 인터럽트 핸들러를 가질 수없는 이유는 무엇입니까?
질문 : 분명히
, 나는 잘못된 정신 모델과 자바 스레드에 대해 생각하고있다. 자바 스레드는 어떻게 생각해야합니까?
감사합니다.
나는이 두 가지를 혼동합니다.JVM이 프로세스를 제공하지 않는 이유에 대해 직관적으로 알고 있으며 스레드 만 제공합니까? – anon
@anon : JVM 자체가 (실행 중일 때) 프로세스이고 운영 체제가 아니기 때문에. 프로세스가 추가 프로세스를 제공 할 수 없습니다. 사실 JVM은 실제로 스레드를 제공하지 않습니다. JVM이 스레드를 시뮬레이트하지 않는 한 스레드를 추상화하지만 프로세스에 스레드를 제공하는 것은 기본 OS입니다. –