Mam pewien problem. Poniżej kod:
import org.apache.commons.lang3.time.StopWatch;
class MyThread implements Runnable
{
private int id;
private double time;
private StopWatch s1 = new StopWatch();
MyThread (int tid)
{
this.id = tid;
time = s1.getTime();
}
@Override
public void run()
{
s1.start();
System.out.println(time); // System.out.println(getTime()); działa
s1.stop();
}
public double getTime()
{
time = s1.getNanoTime();
return time;
}
public void setTime(double t)
{
this.time = t;
}
public class Main
{
public static void main(String[] args) throws InterruptedException
{
Thread threads[] = new Thread[10];
for (int i = 0 ; i < 10 ; i++)
{
threads[i] = new Thread(new MyThread(i));
threads[i].start();
}
}
}
}
Problem leży w tym , że przy powyższym kodzie metoda run zwraca czas na konsole jako "0". Kiedy na ekran wypiszę getTime() zamiast time to wyniki są prawidłowe, ale chodzi mi o to by wynik przekazać za pomocą tego pola a nie metody GetTime...