两种实现方法,分别是继承Thread类与实现Runnable接口
package ThreadDemo;
public class Thread1 {
private int j;
public Thread1(int j) {
this.j = j;
}
private synchronized void inc() {
j++;
System.out.println(j + "--Inc--" + Thread.currentThread().getName());
}
private synchronized void dec() {
j--;
System.out.println(j + "--Dec--" + Thread.currentThread().getName());
}
public void go() {
(new Dec()).start();
new Thread(new Inc()).start();
(new Dec()).start();
new Thread(new Inc()).start();
}
class Dec extends Thread {
public void run() {
for (int i = 0; i < 10; i++) {
dec();
}
}
}
class Inc implements Runnable {
public void run() {
for (int i = 0; i < 10; i++) {
inc();
}
}
}
public static void main(String args[]){
(new Thread1(5)).go();
}
}