快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

javaReentrantLock的重入测试实例分析

这篇文章主要介绍了java ReentrantLock的重入测试实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java ReentrantLock的重入测试实例分析文章都会有所收获,下面我们一起来看看吧。

创新互联公司专注于张家港网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供张家港营销型网站建设,张家港网站制作、张家港网页设计、张家港网站官网定制、微信小程序定制开发服务,打造张家港网络公司原创品牌,更为您提供张家港网站排名全网营销落地服务。

1、概念

可重入的读写锁,读写锁内部维护了一个ReadLock和一个WriteLock,底层还是AQS,但是AQS只有一个state状态量,如何同时控制读和写呢,这里使用了state(int)的高16位表示读状态,低16为表示写,高16位的值代表获取读锁的线程数,低16位代表写锁的可重入数。

2、原理

利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似

3、实例

public class ReentrantDemo implements Runnable {
    Lock lock = new ReentrantLock();
    @Override
    public void run() {
        set();
    }
    public void set() {
        try {
            lock.lock();
            System.out.println("set 方法");
            get();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            lock.unlock();// 必须在finally中释放
        }
    }
 
    public void get() {
 
        try {
            lock.lock();
            System.out.println("get 方法");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            lock.unlock();
        }
    }
    public static void main(String[] args) {
        ReentrantDemo reentrantDemo = new ReentrantDemo();
        new Thread(reentrantDemo).start();
    }
}

关于“java ReentrantLock的重入测试实例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“java ReentrantLock的重入测试实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。


网站标题:javaReentrantLock的重入测试实例分析
地址分享:http://6mz.cn/article/jepsjj.html

其他资讯