第九章 Java多线程机制 05_线程同步_二
第九章 Java多线程机制 05_线程同步_2
结果是:
鱼欲遇雨:每日都学习一点,持之以恒,天道酬勤!不能用电脑时,提前补上!(2012.9.3)
怎么避免同步那?也就是避免同一时间对同一资源进行调用,方法就是用synchronize锁住当前的线程!
// TestSync.java public class TestSync implements Runnable { Timer t = new Timer(); public static void main(String args[]) { TestSync test = new TestSync(); Thread t1 = new Thread(test); Thread t2 = new Thread(test); t1.setName("t1"); t2.setName("t2"); t1.start(); t2.start(); } public void run() { t.add(Thread.currentThread().getName()); } } class Timer { private static int num = 0; public /*synchronized*/ void add(String name) { //第一种用法 synchronized (this) { //第二种用法! num ++; try { Thread.sleep(1); } catch (InterruptedException e) { } System.out.println(name + ", 你是第" + num + "个使用timer的线程。"); } } }
结果是:
t1, 你是第1个使用timer的线程。
t2, 你是第2个使用timer的线程。