用线程操作一个数 二个线程加 二个线程减
package com.test.thread.test; /** * 加一线程与减一线程共同操作一个数 * 两个问题: * 1、线程同步--synchronized * 2、线程之间如何共享同一个j变量--内部类 * * or 使用 volatile 替代 synchronized * @author */ public class Test { // private volatile int i = 0; private int i = 0; public static void main(String args[]){ Test test = new Test(); for(int i = 0; i < 2; i++){ new Thread(test.new ThreadTest("add")).start();; new Thread(test.new ThreadTest("del")).start();; } } private synchronized void add(){ i++; System.out.println(Thread.currentThread().getName()+" \t"+" \t" +i); } private synchronized void del(){ i--; System.out.println(Thread.currentThread().getName()+" \t"+" \t" +i); } class ThreadTest implements Runnable{ private String name; public ThreadTest(String name){ this.name = name; } @Override public void run() { if("add".equals(name)){ //add add(); } if("del".equals(name)){ //del del(); } } } }