你如何告诉
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处理程序等其他东西会中断你的线程并运行.
但是,如果您只关心自己进程中的线程无法执行任何操作,那么是的,让它们阻塞一个互斥体,正在运行的线程保持就足够了.
当你的线程需要做它的事情时,困难的部分是协调所有其他线程来抓取互斥体.