防止linux线程被调度程序中断

前端之家收集整理的这篇文章主要介绍了防止linux线程被调度程序中断前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你如何告诉 linux中的线程调度程序不会因为任何原因中断你的线程?我在用户模式下进行编程.简单地锁定一个互斥体这个吗?当某个功能正在执行时,我想防止我进程中的其他线程被调度.他们会阻止,我会浪费上下文切换的cpu周期.我希望任何执行该函数的线程即使没有中断线程的时间片,也能够中断执行.

解决方法

How do you tell the thread scheduler in linux to not interrupt your thread for any reason?

不能真正做到这一点,你需要一个实时系统.你会用linux得到的关闭的东西是
将调度策略设置为实时调度器,例如,SCHED_FIFO,并且还设置PTHREAD_EXPLICIT_SCHED属性.参见例如here,即使现在,例如irq处理程序等其他东西会中断你的线程并运行.

但是,如果您只关心自己进程中的线程无法执行任何操作,那么是的,让它们阻塞一个互斥体,正在运行的线程保持就足够了.

当你的线程需要做它的事情时,困难的部分是协调所有其他线程来抓取互斥体.

猜你在找的Linux相关文章