
锁
铁子哥写Java
感谢大佬们的支持。
有爱心的大佬请投币。
感谢。
展开
-
java,mysql 悲观锁,乐观锁
悲观锁: pessimistic lock,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。这样别人想拿这个数据就会block直到它拿到锁。sysnchronized类似。 数据库悲观锁使用 for updateselect * from sys_role where sysId=#{sysId} for update**乐观锁:**optimistic lock, 每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在提交更新的时候会判断以下在此期间别人有没有去更新这个数据。原创 2021-01-27 10:37:37 · 199 阅读 · 0 评论 -
java 死锁
DeadLockDemo.javaclass HoldLockThread implements Runnable { private String lockA; private String lockB; public HoldLockThread(String lockA, String lockB) { this.lockA = lockA; this.lockB = lockB; } @Override public原创 2020-12-10 17:41:46 · 158 阅读 · 1 评论 -
LockSupport简单使用
LockSupportpublic static void main(String[] args) { Thread aaa = new Thread(()->{ System.out.println(Thread.currentThread().getName() + " is running"); LockSupport.park(); // 暂停,如果调用多次,后面的唤醒只能唤醒一次park。 System.out.println(Thread.c原创 2020-11-05 11:24:14 · 104 阅读 · 0 评论 -
ReentrantLock 练习
/** * aa 打印5次, bb打印10次, cc打印15次 * 紧接着, * aa 打印5次, bb打印10次, cc打印15次 * ...... * 来10轮 */SyncAndReentrantLockTest.javaclass ShareResourceTest { private int number = 1; private Lock lock = new ReentrantLock(); private Condition c1 = lock.n原创 2020-12-03 21:13:02 · 139 阅读 · 1 评论