Java线程二十五:新特征-原子量
Java线程:新特征-原子量
所谓的原子量即操作变量的操作是“原子的”,该操作不可再分,因此是线程安全的。
为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题。在Java5之前,可以通过volatile、synchronized关键字来解决并发访问的安全问题,但这样太麻烦。
Java5之后,专门提供了用来进行单变量多线程并发安全访问的工具包java.util.concurrent.atomic,其中的类也很简单。
下面给出一个反面例子(切勿模仿):
import java.util.concurrent.ExecutorService;
importjava.util.concurrent.Executors;
importjava.util.concurrent.atomic.AtomicLong;
publicclass Test
{
public static void main(String[]
args) {
ExecutorService
pool = Executors.newFixedThreadPool(2);
Runnable
t1 = new MyRunnable("张三",
2000);
Runnable
t2 = new MyRunnable("李四",
3600);
Runnable
t3 = new MyRunnable("王五",
2700);
Runnable
t4 = new MyRunnable("老张",
600);
Runnable
t5 = new MyRunnable("老牛",
1300);
Runnable
t6 = new MyRunnable("胖子",
800);
//执行各个线程
pool.execute(t1);
pool.execute(t2);
pool.execute(t3);
pool.execute(t4);
import
import
public