class MyThread extends Thread{
private int count = 50;
synchronized public void run(){
count --;
System.out.println(Thread.currentThread().getName() + ":.." + count);
}
}
用synchronized修饰的函数体即是一个同步代码块,可以限制不同线程对count参数的读写。
实例锁和全局锁
synchronized
是实例锁(锁在某一个实例对象上,如果该类是单例,那么该锁也具有全局锁的概念)
static synchronized
是全局锁(该锁针对的是类,无论实例多少个对象,那么线程都共享该锁)。