android를 공부하고 있는 개발자 입니다.

안드로이드를 공부하게 되면서 자연스럽게 jni에 대해 공부를 하게 됐는데요.

여러개의 공유라이브러리를 이용하여 api의 기능을 어플리케이션 단에서 사용할 때 jni함수를 사용하고

메서드를 호출하는 등의 작업을 자바단에서 하게 되는데요.

이때 실제 복잡한 코드상에서 java->c++, c++->java 로의 호출이 왔다갔다 하면서 여러번 일어나는 경우가 많잖아요?

그렇다면 thread가 c++단에서 그리고 java단에서 각기 생성되나요? 아니면 하나의 thread인가요?

일단 c++ 레이어에서도 쓰레드를 정의해놓은 코드가 있고, java에서도 thread를 정의해놓은 부분이 있어서

따로 될거라 생각하는데 또 그렇게 되면  java->c++, c++->java 로의 호출이 왔다갔다 하면서 여러번 일어나는 경우에 코드 처리가
엄청 어려울것 같아서요.

a.bmp

여기 그림에보면 x1.java 와 x2.java 그리고 공유라이브러리 xxx.so가 있습니다.
1. x1과 xxx.so 그리고 x2와 xxx.so가 각각 묶여서 2개의 thread가 생성된다.
2. x1, x2, xxx 각기 다른 thread가 생성되고 하나의 xxx.so를 x1과 x2가 공유한다.

제 생각에는 2번 같은데 모르겠네요.

자료를 찾아봐도 잘 없어서 질문드립니다. 도와주세요.

공지 읽어봤습니다.