线程同步:
[color=red][size=xx-large]synchronized的使用[/size][/color]
[color=red][size=medium]在执行add方法的时候,当前这个对象就会被锁定。[/size][/color]
[color=red][size=xx-large]synchronized的使用[/size][/color]
public class TestThread implements Runnable {
Timer timer = new Timer();
public static void main(String[] args) {
TestThread test = new TestThread();
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的用户");
// }
}
}
[color=red][size=medium]在执行add方法的时候,当前这个对象就会被锁定。[/size][/color]