0

在 Java 中:是否可以阻止调度程序(Ubuntu)对线程代码的特定部分进行上下文切换。

如果是这样,怎么办?

4

2 回答 2

2

你应该去一个实时线程:

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() 方法。

于 2012-12-13T15:05:57.450 回答
2

我为避免上下文切换所做的是使用线程亲和性、忙于等待和隔离 CPU(如果操作系统支持)Java 并不能很好地支持这些,但在一点 JNI/JNA 的帮助下可以完成。

Java的线程亲和库

注意:有些 NMI 中断无法避免,但通常不会产生太大影响。

于 2012-12-13T15:30:26.373 回答