вводит ли JNI дополнительный поток для машинного кода?


В настоящее время я использую android NDK для написания собственного кода на языке C. я узнал, что с помощью JNI мы можем совершать двухсторонние вызовы с java на C и с C на java.

Мне интересно, если использование JNI вводит дополнительный поток неявно или это все еще один основной поток () для приложения ?

Спасибо,

1 2

1 ответ:

Dalvik Java VM в Android вызывает машинный код из текущего Java-потока. Это может быть любой поток - UI или любой другой. Ваш нативный код может создавать новые потоки по своему усмотрению.

Конечно, вызов java - > native - > java вернется к тому же потоку, в котором он был вызван.