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