• Lock锁


    一:Lock锁的含义

    ●Lock也是Java中锁的一大家族。同synchronized一样,保证操作的原子性。
    ●Lock是一个接口,两个直接实现类:ReentrantLock(重入锁),ReentrantReadWriteLock(读写锁)。

    ●Lock锁,使用时手动获取锁和释放锁,比synchronized更加灵活;可中断的获取锁;超时获取锁。
    ●ReentrantLock的底层是AQS队列[Abstract Queued Synchronizer队列同步器],AQS队列的底层是一种先入先出队列。具有可冲入,
        公平/非公平锁的特点,其底层具有一种工作窃取算法用来提高工作效率。 

    非公平锁会抢占锁资源,执行效率会更高。

    工作窃取:当一个线程是空闲时,它会监听哪一个线程是繁忙的,主动去帮助繁忙的线程。

       
    ●可重入:属于锁的一种特性。线程在完成任务后,会判断是否能够拿到下一次使用资源的机会。如果可以,就继续占用锁(锁的变量自增),不放弃对当前锁的占用。当锁的变量为0时,B和C就可以使用锁了。
    ●公平/非公平锁:核心的区别就是抢占。

    ReentrantLock和Synchronized的区别:可以实例化对象;含有更多丰富的方法;

    二:Lock锁案例

    1. package com.zc;
    2. import java.util.concurrent.locks.Lock;
    3. import java.util.concurrent.locks.ReentrantLock;
    4. import com.sun.org.apache.bcel.internal.generic.NEW;
    5. public class Test09 implements Runnable{
    6. Lock lock1=new ReentrantLock();
    7. private int ticketNum=100;
    8. @Override
    9. public void run(){
    10. lock1.lock();
    11. long l1=System.currentTimeMillis();
    12. for(int i = 0; i < 20; i++) {
    13. System.out.println(Thread.currentThread().getName()+" : "+i);
    14. try {
    15. Thread.sleep(100);
    16. } catch (InterruptedException e) {
    17. // TODO: handle exception
    18. e.printStackTrace();
    19. }
    20. }
    21. lock1.unlock();
    22. }
    23. public static void main(String[] args) {
    24. Test09 t1=new Test09();
    25. new Thread(t1,"张丹").start();
    26. new Thread(t1,"李思").start();
    27. new Thread(t1,"王吴").start();
    28. }
    29. }

    lock():获得锁

    trylock():只有在调用时它不被另一个线程占用才能获取锁。

    unlock():线程无响应时,尝试释放此锁。

    三:某个Java技术实现线程安全的原理是什么?

    》悲观锁ReentrantLock和Synchronized.才能保证原子性操作,创建互斥区。

    》还有一些可以向线程安全方向优化的技术。比方说,乐观锁的思想,CAS理论,volatile.

  • 相关阅读:
    call apply bind 区别与联系
    图像处理用什么神经网络,神经网络如何识别图像
    群晖NAS使用Docker安装WPS Office并结合内网穿透实现公网远程办公
    初学java懵了,这个异常是怎么产生的?
    Python爬虫实战系列2:虎嗅网24小时热门新闻采集
    设计模式—简单工厂
    Linux命令(105)之readlink
    IDEA中使用JIRA
    Git原理架构详解
    三甲医院是什么?
  • 原文地址:https://blog.csdn.net/weixin_52014130/article/details/127089573