文章目录
一 锁的相关概念
最近学习关于多线程高并发的课程。由此对线程的了解更加深入。在多线程中,由于并发的安全问题,不得不采用锁机制去控制线程的同步。下面先来看看锁的一些类型和相关的概念
1.自旋锁
当一个线程在获取锁的时候,若锁已经被其他线程获取,那么该线程将循环等待,然后不断判断锁是否能够被成功获取,直到获取锁才会退出循环。
2.乐观锁和悲观锁
1.乐观锁: 假定没有冲突,在修改数据时若发现数据和之前获取的不一致,则读最新数据,修改后重试修改,
2. 悲观锁:假定会发生并发冲突,同步所有对数据的相关操作,从读取数据的时候就开始上锁
3.独享锁和共享锁
1 独享锁:给资源加上写锁,线程可以修改资源,其他线程不能再加锁
2 共享锁:给资源加上读锁,只能读不能修改,其他线程也只能加读锁,不能加写锁
4.可重入锁和不可重入锁
1 可重入锁;线程拿到一把锁之后,可以自由进入同一把锁同步的其他代码
2 不可重入锁: 与上相反
5.公平锁和非公平锁
1 公平锁:争夺锁的顺序,若先来后到,则公平
2 不公平锁:与上相反
二 .关于Synchronized
1.它是什么锁
Synchron