Java多线程 - (一) 最简单的线程安全问题
?
?
? ? ? ??? ? 在这个类中的count方法是计算1一直加到10的和,并输出当前线程名,还有共享的对象(Count)的个数和数字的总和,我们期望的是每个线程都会输出55。
?
?这里启动了10个线程,我们先看下输出的结果是不是我们预期的那样
?
?
?
? ? ? ? ?2. 将线程类成员变量拿到run方法中;
?很明显,这个方法会构造10个Count对象。
?
? ? ?3. 每次启动一个线程使用不同的线程类,不推荐。
? ? ? ? 上述测试,我们发现,存在成员变量的类用于多线程时是不安全的,而变量定义在方法内是线程安全的。想想在使用struts1时,不推荐创建成员变量,因为 action是单例的,如果创建了成员变量,就会存在线程不安全的隐患,而struts2是每一次请求都会创建一个action,就不用考虑线程安全的问 题。?
?