注意:不能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(); } } }
加一线程与减一线程共同操作一个数,布布扣,bubuko.com
时间: 2024-10-11 23:08:55