5.公平锁,非公平锁,可重入锁,递归锁,自旋锁谈谈你的理解?请手写一个自旋锁

公平锁,非公平锁,可重入锁,递归锁,自旋锁谈谈你的理解?请手写一个自旋锁

image-1662511543036

公平锁和非公平锁

  • 是什么

    image-1662511556257

  • 两者区别

    image-1662511570221

  • 题外话

    image-1662511594135

可重入锁(又名递归锁)

  • 是什么

    image-1662511610828

  • ReentrantLock/Synchronized就是一个典型的可重入锁

  • ReenterLockDemo

自旋锁

image-1662511638636

  • 生活case:我在打电话,一个同事问我问题

    • 1)一直等(阻塞)
    • 2)在等的过程中,(可以去办别的事情,然后再回来看是否打完电话)-循环
  • 技术case:
    SpinLockDemo

独占锁(写锁)/共享锁(读锁)/互斥锁

image-1662511661662
代码实战demo

彩蛋

  • 1.锁分类

    • MySQL锁
    • Java锁
  • 2.三把斧(学技术要重视:方法论,理论+实践(编码实现))

    • 理论
    • 代码(技术case+生活case)
    • 小总结
  • 3.多线程安全问题
    其实就是线程操作资源类出现数据不一致问题

  • 3.IT学习方法论

    1)多思考(新技术有个before,after的对比)

    image-1662511687300

  • 4.工作经验笑谈

    1)5年工作经验

    2)1个工作经验用了5年

  • 5.看Redis源码,模仿写一个缓存

最近的文章

6、CountDownLatch、CyclicBarrier、Semaphore使用过吗

CountDownLatch、CyclicBarrier、Semaphore使用过吗CountDownLatch代码示例CyclicBarrier代码示例Semaphore代码示例彩蛋1.程序开发,先完成(基本功能),再完美(迭代)2.程序员两种1)功能2)功能+性能3.Java枚举可以看成一个小型…

继续阅读
更早的文章

4.我们知道ArrayList是线程不安全,请编码写一个不安全的案例并给出解决方案

我们知道ArrayList是线程不安全,请编码写一个不安全的案例并给出解决方案写时复制彩蛋1.撸源码,查看ArrayList new的过程,add的过程(包含扩容),本质是一个数组2.工作经验:有自己的故障收集手册牛逼程序员(写正确代码,正确代码前提:写了无数的故障代码,并不断总结)3.优秀Java…

继续阅读