静态变量的并发问题
在网上看到一段代码,如下:
启动1000的线程,每个线程对变量+1 ,结果应该是1000 才对,但是因为 并发的问题不能实现。
谁能修改下代码,让它运行正确。
public class Counter {
public static int count = 0;
public static void inc() {
//这里延迟1毫秒,使得结果明显
try {
Thread.sleep(1);
} catch (InterruptedException e) {
}
count++;
}
public static void main(String[] args) {
//同时启动1000个线程,去进行i++计算,看看实际结果
for (int i = 0; i < 1000; i++) {
new Thread(new Runnable() {
public void run() {
inc();
}
}).start();
}
//这里每次运行的值都有可能不同,可能为1000
System.out.println("运行结果:Counter.count=" + Counter.count);
}
}启动1000的线程,每个线程对变量+1 ,结果应该是1000 才对,但是因为 并发的问题不能实现。
谁能修改下代码,让它运行正确。
...全文
相关推荐
python类和函数中使用静态变量的方法
主要介绍了python类和函数中使用静态变量的方法,实例分析了三种常用的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
java并发编程实例分析
在本文里我们给大家分享了关于java并发编程实例分析以及相关知识点,需要的朋友们学习下。
使用PHP静态变量当缓存的方法
本文介绍如何使用PHP静态变量当缓存,减少代码重复执行,优化程序性能
JAVAStatic静态变量.doc
JAVAStatic静态变量.doc
PHP中的静态变量及static静态变量使用详解
主要绍了PHP中的静态变量及static静态变量使用详解的相关资料,需要的朋友可以参考下


Java SE
