一 synchronized的概念
synchronized是多线程中的同步锁,具有可重入性。被synchronized修饰的方法或者代码块会被加上同步锁,同步锁会消耗一定的性能。当synchrinized部分的代码执行结束,或者程序出现异常的时候锁也会被释放。
二 synchronized的用法
1 synchronied修饰非静态方法
synchronized修饰方法的时候,该方法被称之为同步方法,作用的对象是调用该方法的对象。
public class SyncDemo extends Thread{
private static SyncDemo o = new SyncDemo();
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SyncDemo d1 = new SyncDemo();
d1.setName("d1");
SyncDemo d2 = new SyncDemo();
d2.setName("d2");
d1.start();
d2.start();
}
@Override
public void run(){
o.print();
}
public synchronized void print(){
System.out.println("线程:" + Thread.currentThread().getName() + "进来了");
try {
this.currentThread().sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-gene