synchronized 加在java方法前面是什么作用

synchronized 加在java方法前面是什么作用,第1张

你需要一种非阻塞式的锁。javautilcocurrent包中的ReentrantReadWriteLock就提供了可重入的读写锁机制。

final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); //读写锁

public boolean read() {

    //尝试获取读锁

    if (rwlreadLock()tryLock()){

        //读资源

        return true;

    } else { //获取读锁失败

        return false; //立即返回

    }

}

public boolean write() {

    //尝试获取写锁

    if (rwlwriteLock()tryLock()) {

        //写资源

        return true;

    } else { //获取写锁失败

        return false; //立即返回

    }

}

在java中,synchronized就是非公平锁,它无法保证等待的线程获取锁的顺序。

关于非公平锁

非公平锁即无法保证锁的获取是按照请求锁的顺序进行的。这样就可能导致某个或者一些线程永远获取不到锁。

对象锁&类锁 对象锁 当一个对象中有synchronized method或synchronized block的时候调用此对象的同步方法或进入其同步区域时,就必须先获得对象锁。如果此对象的对象锁已被其他调用者占用,则需要等待此锁被释放 同步静态方法/静态变量互斥体 由

以上就是关于synchronized 加在java方法前面是什么作用全部的内容,包括:synchronized 加在java方法前面是什么作用、java 如果判断一个对象被其它线程读或写锁定如果锁定则所在方法return、java 如何判断一个对象被其它线程读或写锁定如果锁定则所在方法return等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9683136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存