package thread.sync; public class NumMake { private int i = 0; int getNext() { return i++; } }
package thread.sync; public class NumTest { /** * @author jzh 2011-12-19 * @param args */ public static void main(String[] args) { NumMake num = new NumMake(); Thread idodoThread = new NumThread("chanpinxue.cn", num); Thread jzhThread = new NumThread("jzh", num); idodoThread.start(); jzhThread.start(); } }
package thread.sync; public class NumThread extends Thread { private NumMake num; private String name; public NumThread(String name, NumMake num) { super(name); this.num = num; this.name = name; } public void run() { for (int i = 0; i < 5; i++) { synchronized (num) { System.out.println(name + " = " + num.getNext()); } try { Thread.sleep(200); } catch (Exception e) { e.printStackTrace(); } } } }