Почему увеличивается значение на 2 в атомическом поле?
Помогите пожалуйста разобраться, почему поле counter2 уеличивается на 2, а не на 1?
import java.util.concurrent.atomic.AtomicInteger;
public class Part3 {
AtomicInteger counter = new AtomicInteger(0);
AtomicInteger counter2 = new AtomicInteger(0);
volatile static int k;
volatile static int t;
volatile static int n;
Part3(int n, int k, int t) {
this.k = k;
this.t = t;
this.n = n;
}
public void test() {
System.out.printf("%s %s%n", counter, counter2);
}
public static void main(String[] args) {
Part3 part3 = new Part3(2, 3, 100);
Thread[] threads = new Thread[n];
for (int i = 0; i < n; i++) {
threads[i] = new MyThread(part3);
threads[i].start();
}
}
}
class MyThread extends Thread {
Part3 part3;
MyThread(Part3 part3) {
this.part3 = part3;
}
//blah-blah
@Override
public void run() {
for (int i = 0; i < part3.k; i++) {
part3.test();
part3.counter.incrementAndGet();
try {
Thread.sleep(part3.t);
} catch (InterruptedException e) {
e.printStackTrace();
}
part3.counter2.incrementAndGet();
}
}
}