2012-10-19 2 views
3

잠시 JNI로 작업했지만, 지금 시도하고있는 것은 하나의 클래스에서 JNI 변수를 초기화하고 다른 클래스에서 JNI 변수를 설정해야합니다.자바 사이의 JNI 범위

제 질문은 JNI가 모든 클래스 (즉, 모든 클래스의 개인 주소 공간 없음)에 대해 동일하게 작동하는지 여부입니다. 즉, 한 클래스 (예 : 클래스 A)에서 하나의 파일 범위 변수에 대한 메모리를 C 라이브러리에 할당 (및 설정)합니다. 클래스 B에서이 변수를 사용하기 위해이 변수에 해당 메모리가 할당되어 있고 (일부 데이터로 설정되어 있습니까?)?

답변

0

개인 공간을 제공하는 유일한 메커니즘은 스레드 로컬 저장소입니다.

정적 할당 또는 힙 할당 (malloc)은 모든 코드 조각에서 실행 파일로 공유됩니다.

Windows API는 변형을 제공하지만 명시 적으로 사용합니다.