为了完成线程同步,我们将使用原子变量来实现。AtomicInteger类存在于java.util.concurrent.atomic中,该类表示支持原子操作的整数,采用getAndIncrement方法以原子方法将当前的值递加。相关阅读:Java Hashtable多线程操作遍历问题 http://www.linuxidc.com/Linux/2013-01/78574.htmJava多线程顺序执行 http://www.linuxidc.com/Linux/2012-07/65033.htmJava多线程问题之同步器CyclicBarrier http://www.linuxidc.com/Linux/2012-07/64593.htmJava多线程之wait()和notify() http://www.linuxidc.com/Linux/2012-03/57067.htmJava多线程之synchronized http://www.linuxidc.com/Linux/2012-03/57068.htmJava多线程之并发锁 http://www.linuxidc.com/Linux/2012-03/57069.htm代码如下:package com.Android.test;import java.util.concurrent.atomic.AtomicInteger;//使用原子变量实现线程同步 public class AtomiclntergerDemo implements Runnable{
// 定义原子变量 private AtomicInteger number = new AtomicInteger(0); private static final int nCount = 5; @Override public void run() { // TODO Auto-generated method stub for (int i = 0; i < nCount; i++) { try { Thread.sleep(1); } catch (InterruptedException e) { // TODO: handle exception e.printStackTrace(); } // getAndIncrement变量以原子的方式递加 System.out.println(Thread.currentThread().getName() + ":" + number.getAndIncrement()); }
} public static void main(String []args){ AtomiclntergerDemo run = new AtomiclntergerDemo(); // 创建两个线程 Thread thread1 = new Thread(run); Thread thread2 = new Thread(run);