我试图获取CPU执行上下文切换所需的时间,因此我有一个以纳秒为单位的系统时间类,并将其放入一些线程中,但我需要获取这些数字并对其执行计算,但是我不知道如何访问它。
这是我的主要功能。
public class GroupNinePipe{
public static void main(String[] args)
{
Thread t1 = new Thread(new OSProj2("Thread1"));
Thread t2 = new Thread(new OSProj2("Thread2"));
Thread t3 = new Thread(new OSProj2("Thread3"));
Thread t4 = new Thread(new OSProj2("Thread4"));
Thread t5 = new Thread(new OSProj2("Thread5"));
Thread t6 = new Thread(new OSProj2("Thread6"));
OSProj2 n = new OSProj2("Thread 8");
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
t6.start();
}
}
类占用系统时间。
public class OSProj2 implements Runnable {
String name;
long time;
public OSProj2(String x)
{
name = x;
}
public void run()
{
try{
time = System.nanoTime();
System.out.printf("%s sys time: %d\n", name, time);
this.getTime();
}
catch (Exception e){}
}
public long getTime()
{
return time;
}
}
我知道类的名称是 Pipe,但我不使用它。
最佳答案
我不知道这是否是正确的方法,但尽管如此,你的代码会变成这样
Runnable osProj2 = new OSProj2("Thread1");
Thread t1 = new Thread(osProj2);
t1.start();
try {
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(osProj2.getTime()); // for example
t1.join() 将阻塞,直到你的线程完成运行,希望我有所帮助
关于java - 如何访问线程中 Runnable 对象的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55210224/