Уязвимость 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