public class ThreadTest { // 定义变量,用于检测线程调度的先后次序 private int j;
public static void main(String args[]) { ThreadTest tt = new ThreadTest(); Inc inc = tt.new Inc(); Dec dec = tt.new Dec(); // 循环两次,每次启动2个线程,总共有4个线程 for (int i = 0; i < 2; i++) { Thread t = new Thread(inc); t.start(); t = new Thread(dec); t.start(); } }
// synchronized 线程同步 同一时间内只能执行这个类中的一个方法 private synchronized void inc() { j++; System.out.println(Thread.currentThread().getName() + "-inc:" + j); }
private synchronized void dec() { j--; System.out.println(Thread.currentThread().getName() + "-dec:" + j); }
// 实现Runnable接口 java中有2中方法实现线程 1、扩展java.lang.Thread类 // 2、实现java.lang.Runnable接口 class Inc implements Runnable { public void run() { for (int i = 0; i < 10; i++) { inc(); } } }
class Dec implements Runnable { public void run() { for (int i = 0; i < 10; i++) { dec(); } } }
}
