class Resource { private int j=0; //j增加1 public synchronized void add(){ j++; System.out.println(Thread.currentThread().getName()+"...add..."+"目前j的值为:"+j); } //j减少1 public synchronized void des(){ j--; System.out.println(Thread.currentThread().getName()+"-des-"+"目前j的值为:"+j); } } class FourThreadTest { //创建Resource对象 private Resource resource = new Resource(); public static void main(String[] args) { FourThreadTest fourThread = new FourThreadTest(); fourThread.test(); } public void test(){ for(int i=0;i<2;i++){ new Thread(new Runnable(){ public void run(){ while(true){ try { Thread.sleep((long)(Math.random()*1000)); } catch (InterruptedException e) { e.printStackTrace(); } resource.add(); } } }).start(); new Thread(new Runnable(){ public void run(){ while(true){ try { Thread.sleep((long)(Math.random()*1000)); } catch (InterruptedException e) { e.printStackTrace(); } resource.des(); } } }).start(); } } }
public class Main{ private int j=0;//定义变量j public synchronized add(){ j++;//定义同步方法每次只有一个线程对j进行j++操作 } public synchronized dec(){ j--;//定义同步方法每次只有一个线程对j进行j--操作 } public static void main(String[] args){ for(int i=0;i<2;i++){ new Thead(new Runnable(){//使用匿名内部类进行线程的创建,重写run()方法,调用add()方法 public void run(){ while(true){ add(); } } }).start(); new Thead(new Runnable(){//使用匿名内部类进行线程的创建,重写run()方法,调用dec()方法 public void run(){ while(true){ dec(); } } }).start(); } } }