// $Id: MultiIncB.java,v 1.5 2002-07-08 01:02:49+09 kaiya Exp kaiya $ import java.util.*; class MultiIncB extends Thread{ private Counter c; private Random r; private int id; MultiIncB(Counter cref, int i){ c=cref; id=i; r=new Random(); } void waiting(){ try{ Thread.sleep(r.nextInt(100)); }catch(Exception e){} } void inc(){ synchronized(c) { int v=c.val(); waiting(); c.set(v+1); } } public void run(){ for(int i=0; i<10; i++){ //System.out.print(id+"."); inc(); waiting(); } System.out.println(c.val()); } public static void main(String[] args){ Counter c=new Counter(); new MultiIncB(c, 1).start(); new MultiIncB(c, 2).start(); new MultiIncB(c, 3).start(); } }