synchronized关键字即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候;
public class TestSync implements Runnable{
Timer timer = 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();
}
@Override
public void run() {
timer.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的线程");
//}
}
}