写两个线程,一个加,一个减
package helloworld;
import java.util.*;
/**
* 加一线程与减一线程共同操作一个数 两个问题: 1、线程同步--synchronized 2、线程之间如何共享同一个j变量--内部类
*
* @author liuwei
*/
public class Test {
int j = 0;
public synchronized void inc() {
j++;
System.out.println(Thread.currentThread().getName() + "-inc-->" + j);
}
class T1 implements Runnable {
public void run() {
inc();
}
}
public synchronized void dec() {
j--;
System.out.println(Thread.currentThread().getName() + "-dec-->" + j);
}
class T2 implements Runnable {
public void run() {
dec();
}
}
public static void main(String[] args) {
Test t = new Test();
T1 t1 = t.new T1();
T2 t2 = t.new T2();
for (int i = 0; i < 5; i++) {
new Thread(t1).start();
new Thread(t2).start();
}
}
}
结果:
Thread-0-inc-->1
Thread-1-dec-->0
Thread-2-inc-->1
Thread-3-dec-->0
Thread-5-dec-->-1
Thread-6-inc-->0
Thread-7-dec-->-1
Thread-9-dec-->-2
Thread-4-inc-->-1
Thread-8-inc-->0