У меня есть псевдо-система RT, которая работает с несколькими потоками. Я хочу, чтобы каждый поток выполнялся на определенной частоте (период времени). Я использую usleep (time_until_reschedule). Проблема в том, что time_until_reschedule может быть вычислен, тогда поток с более высоким приоритетом может вытеснить этот поток, и я хотел бы избежать такого поведения.sleep_until in embedded_linux в многопоточной среде (встроенная Linux)
Я хотел бы реализовать что-то, что действует как «sleep_until». Я думаю использовать hrtimers (встроенный в мое ядро) с SIGEV_THREAD_ID для уведомления каждого потока, в то время как поток вызывает sigwait().
Является ли это разумным способом реализации своего рода sleep_until() или есть лучший способ под Linux, пожалуйста?
Спасибо, это выглядит хорошим решением моей проблемы! Я не знал о clock_nanosleep или EDF, спасибо большое! – Jary316