2012-07-22 1 views
0

클래스 패스 프로젝트 http://fuseyism.com/classpath/doc/에서 Object 클래스의 소스 코드를 읽고 wait() 및 다른 메소드에 VMObject에 대한 참조가있었습니다.VMObject 란 무엇입니까?

public final void wait() 
throws IllegalMonitorStateException, InterruptedException { 
    VMObject.wait(this, 0, 0); 
} 

Google에서 답변을 검색하고 #java 채널에서 질문했지만 아무도 대답이 없습니다. OpenJDKwait()에서 잘

+0

"VMObject"는 GNU Java 항목입니다. – paulsm4

답변

0

은 다음과 같습니다

public final native void wait(long timeout) throws InterruptedException; 

내가 거기에 VMObject

의 코드를 발견 구글을 사용하여, VMObject.wait()는 다음과 같습니다

static native void wait(Object o, long ms, int ns) throws IllegalMonitorStateException, InterruptedException; 

난 단지입니다 추측하지만 VMObject는 GNUClassPath에 특정한 구현 세부 사항이라고 생각합니다. 직접 "객체"에 네이티브 호출을 사용하는 대신이 "VMObject"클래스의 정적 메서드의 기본 통화와 추상화의 추가 계층을하기로 결정하지 ided}

Java Language and Virtual Machine Specification에서 :.

네이티브 메소드는 플랫폼 의존 코드 인 (일반적으로 C, C++, FORTRAN 또는 어셈블리 언어와 같은 다른 프로그래밍 언어로 작성 됨)로 구현됩니다. 원시 메소드의 본문은 블록이 아닌 으로 구현이 생략되었음을 나타내는 세미콜론으로 만 제공됩니다.

네이티브 메서드에 대해 더 자세히 알고 싶다면 this을 읽을 수 있습니다.