Имам критично време приложение, което трябва да изпрати UDP дейтаграма по зададен график. Толерантността към трептене е много ниска от приемащата страна. Прилагането на това с java ScheduledThreadPoolExecutor не е адекватно, защото когато GC прави колекция „Stop the World“, моята нишка спира, докато GC върши своята работа.
Бих искал да внедря бизнес логиката в Java, докато внедрявам критичните за времето части с POSIX нишки в C++ (родната среда е Linux между другото). Това би ни позволило да спестим хиляди редове код, написан на Java, и също така да получим необходимия темп от естествените системни извиквания.
Въпросът ми е следният: Ако извикам JNI функция, която създава отделна POSIX нишка, тази нишка ще бъде ли "поставена на пауза", когато Java GC направи колекция "Stop the World"? Има ли някакви капани, които опитен JNI гуру би искал да посочи с този подход или някакви алтернативни подходи, които би предложил?
Както винаги, благодарение на страхотната общност за препълване на стека!