Ответ 1
Попробуйте sched_yield из "sched.h", который создается именно для того, что вы хотите сделать.
Если это не работает по какой-либо причине - попробуйте usleep(1)
- это даст как минимум 1 микросекундную задержку (может быть больше), что, в свою очередь, вызывает переключатель контекста (если какой-либо поток ожидает).