Java中有哪些锁,区别是什么

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lzbhnr/article/details/79746972

【1】公平所和非公平所。
公平锁:是指按照申请锁的顺序来获取锁,
非公平所:线程获取锁的顺序不一定按照申请锁的顺序来的。

//默认是不公平锁,传入true为公平锁,否则为非公平锁
ReentrantLock reentrantLock =  new ReetrantLock();

【2】共享锁和独享锁
独享锁:一次只能被一个线程所访问
共享锁:线程可以被多个线程所持有。
ReadWriteLock 读锁是共享锁,写锁是独享锁。
【3】乐观锁和悲观锁。
乐观锁:对于一个数据的操作并发,是不会发生修改的。在更新数据的时候,会尝试采用更新,不断重入的方式,更新数据。
悲观锁:对于同一个数据的并发操作,是一定会发生修改的。因此对于同一个数据的并发操作,悲观锁采用加锁的形式。悲观锁认为,不加锁的操作一定会出问题,
【4】分段锁
1.7及之前的concurrenthashmap。并发操作就是分段锁,其思想就是让锁的粒度变小。
【5】偏向锁是指一段同步代码一直被一个线程所访问,那么该线程会自动获取锁。降低获取锁的代价
轻量级锁
重量级锁
【6】自旋锁
自旋锁

TCP和UDP的区别和优缺点
https://blog.csdn.net/xiaobangkuaipao/article/details/76793702
(1)tcp面向链接,UDP无链接
(2)tcp发送的数据是可靠的,无差错的,及时的。udp不能保证这些
(3)tcp只能是一对一的服务,udp可以是一对一,一对多,多对一,多对多。
(4)

展开阅读全文

没有更多推荐了,返回首页