package multithread; public class MyThread { //j變量私有 private int j; //同步的+1方法 private synchronized void add(){ j++; System.out.println(Thread.currentThread().getName()+"----------> "+j); } //同步的-1方法 private synchronized void subtract(){ j--; System.out.println(Thread.currentThread().getName()+"----------> "+j); } //實現Runnable接口的內部加類 class Add implements Runnable{ @Override public void run() { for (int i = 0; i < 100; i++) { add(); } } } //實現Runnable接口的內部減類 class Subtract implements Runnable{ @Override public void run() { for (int i = 0; i < 100; i++) { subtract(); } } } public static void main(String[] args) { //創建外部類和內部類的實例 MyThread mt = new MyThread(); Add add = mt.new Add(); Subtract subtract = mt.new Subtract(); //循環啟動4個線程 for (int i = 0; i < 2; i++) { Thread t = new Thread(add); t.start(); t = new Thread(subtract); t.start(); } } }