gpt4 book ai didi

java - 如何访问线程中 Runnable 对象的字段

转载 作者:行者123 更新时间:2023-12-02 10:07:50 25 4
gpt4 key购买 nike

我试图获取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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com