我正在嘗試編寫一個小型測試,其中我正嘗試更改Java線程的優先級,以將其設置爲科學Linux框上的實時屬性。在Java中使用JNI調用更改線程優先級
我認爲這需要使用JNI調用完成,因爲使用Thread.MAX_PRIORITY或Thread.MIN_PRIORITY將永遠不會將其映射到實時優先級。
我很難過,我怎樣才能從我的本地代碼訪問我的Java線程。以下是我的java程序:
public class ThreadPriorityTest implements Runnable {
public static int numThreads;
public void run() {
System.out.println("***Java: Changing thread priorities");
changePriority();
}
public static synchronized native void changePriority();
public static void main(String[] args) {
if(args.length != 1) {
System.out.println("Usage: ThreadPriorityTest <num_of_threads>");
System.exit(0);
}
numThreads = Integer.parseInt(args[0]);
for(int i = 0; i < numThreads; i++) {
Thread t = new Thread(new ThreadPriorityTest());
t.start();
}
}
}