Уязвимость Fork-Join для статической переменной Java

Почему статические переменные уязвимы, но другие переменные не используются при использовании fork join в Java. Предположим, что класс A имеет две переменные

public static int count = 1;
public int c=1;

сейчас в классе рекурсивного действия B

@Override
protected void compute() {
    // TODO Auto-generated method stub
    A z=new A();
    z.count++;
    z.ss++;
    System.out.println(z.count);
    System.out.println(z.ss);
}
public static void main(String[] args) {
    List<B> tasks =new ArrayList<B>();
   for(int i=1; i<=2; i++){
        B =new B();
        tasks.add(B);
        B.fork();
    }
    if (tasks.size() > 0) {
        for (B task : tasks) {
            task.join();
        }
    }
}

// Вывод получаю

2
2
2 
3

0 ответов

Другие вопросы по тегам