- synchronized是java关键字,Lock不是(是java.util.concurrent.locks包下的接口)
- synchronized无法设置等待时间,Lock可以
- synchronized无法响应中断,Lock可以
- synchronized无法区分读写,Lock可以(多个读线程可同时获取读锁)
- synchronized无法知道是否成功获取锁,Lock可以
- synchronized是非公平锁,Lock可以设置为公平锁
- 当竞争资源非常激烈时(即有大量线程同时竞争),Lock的性能要远远优于synchronized
- synchronized会自动释放锁,Lock不会(需在finally中释放)
0 Comments
Leave a comment