首页 > 代码库 > 加一线程与减一线程共同操作一个数

加一线程与减一线程共同操作一个数

 注意:不能synchronized(j) 因为j是基本数据类型,不是对象!

/** * 加一线程与减一线程共同操作一个数 两个问题: 1、线程同步--synchronized 2、线程之间如何共享同一个j变量--内部类 *  */public class test {    int j = 1;    public synchronized void inc() {        j++;        System.out.println(Thread.currentThread().getName() + "-inc:" + j);    }    public synchronized void dec() {        j--;        System.out.println(Thread.currentThread().getName() + "-dec:" + j);    }    class P implements Runnable {        public void run() {            inc();        }    }    class C implements Runnable {        public void run() {            dec();        }    }    public static void main(String[] args) {        test t = new test();        P p = t.new P();        C c = t.new C();        for (int i = 0; i < 2; i++) {            Thread pp = new Thread(p);            pp.start();            Thread cc = new Thread(c);            cc.start();        }    }}