class SyncThread implements Runnable { private String name; private static int count; public SyncThread(String name){ this.name=name; } public SyncThread() { count = 0; } public void run() { synchronized(this) { for (int i = 0; i < 5; i++) { try { System.out.println(Thread.currentThread().getName() + ":" + (count++)); Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } public int getCount() { return count; } }// public static void main(String[] args) {
// SyncThread syncThread = new SyncThread(); // Thread thread1 = new Thread(syncThread, "SyncThread1"); // Thread thread2 = new Thread(syncThread, "SyncThread2"); // thread1.start(); // thread2.start(); // }输出如下:SyncThread1:1
SyncThread1:2
SyncThread1:3
SyncThread1:4
SyncThread2:5
SyncThread2:6
SyncThread2:7
SyncThread2:8
SyncThread2:9
public class SyncThreadTest { public static void main(String[] args) { // SyncThread syncThread = new SyncThread(); // Thread thread1 = new Thread(syncThread, "SyncThread1"); // Thread thread2 = new Thread(syncThread, "SyncThread2"); new Thread(new SyncThread("SyncThread1") ).start(); new Thread(new SyncThread("SyncThread2") ).start(); // thread1.start(); // thread2.start(); } }
输出如下:Thread-1:1
Thread-0:0
Thread-1:2
Thread-0:3
Thread-1:4
Thread-0:5
Thread-1:6
Thread-0:7
Thread-0:8
Thread-1:9