小编Kon*_*tin的帖子

单独的线程可以更改静态变量吗?

浏览网页后,我仍然对以下线程行为感到困惑.我知道静态变量是在同一个类加载器中共享的,但是在这个提取中肯定没有:

public class parallelCounter {
    public static final int N = 100000000;
    public static int j = 0;
    public static void inc() {
        for (int i = 0; i < N; i++) {
            j++;
        }
        System.out.println(j); // 10000000
    }
}

class parallelCounterDemo {
    public static void main(String[] args) {
        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                parallelCounter.inc();
            }
        });
        t1.start();
        System.out.println(parallelCounter.j); // 0 Why?
    }
}
Run Code Online (Sandbox Code Playgroud)

java static multithreading

7
推荐指数
1
解决办法
644
查看次数

标签 统计

java ×1

multithreading ×1

static ×1