package thread;
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();
}
public void run() {
timer.add(Thread.currentThread().getName());
}
}
class Timer{
private static int num=0;
public synchronized void add(String name) {//可以使用<span style="font-family: Arial, Helvetica, sans-serif;">synchronized锁住当前对象,防止不同线程访问同一资源后得到错误的状态</span>
//synchronized (this) {
num++;
try {
Thread.sleep(0);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(name+",你是第"+num+"个使用timer的线程");
}
//}
}
马士兵老师说:
是在执行这个方法的时候,当前对象被锁定