在 Java 中:是否可以阻止调度程序(Ubuntu)对线程代码的特定部分进行上下文切换。
如果是这样,怎么办?
你应该去一个实时线程:
http://jrate.sourceforge.net/api/stable/javax/realtime/RealtimeThread.html
并将其优先级设置为最高级别:
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#setPriority%28int%29
这样,一旦实时线程启动,它就不会再释放处理器了。
此外,应该要求调度程序表现得像(实时)FIFO调度程序。
你有一个 setScheduler() 方法。
我为避免上下文切换所做的是使用线程亲和性、忙于等待和隔离 CPU(如果操作系统支持)Java 并不能很好地支持这些,但在一点 JNI/JNA 的帮助下可以完成。
注意:有些 NMI 中断无法避免,但通常不会产生太大影响。