验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Synchronized如何实现非公平锁

阅读:790 来源:乙速云 作者:代码code

Synchronized如何实现非公平锁

在Java中,synchronized关键字用于实现线程同步,它可以保证多个线程在访问共享资源时的互斥性和可见性。synchronized关键字可以用来修饰方法或者以代码块的形式出现。默认情况下,synchronized实现的是一种非公平锁。

非公平锁的特点是线程获取锁的顺序不一定按照线程请求锁的顺序来,也就是说,等待时间最长的线程不一定能优先获取锁。这种锁的优点是吞吐量通常比公平锁大,因为减少了线程上下文切换的开销。

synchronized的非公平性是由Java虚拟机(JVM)的实现决定的,具体来说,是由操作系统提供的锁机制决定的。在大多数操作系统中,互斥锁(mutex)的实现都是非公平的。

如果你想要使用公平锁,可以使用java.util.concurrent.locks.ReentrantLock类,并将构造函数中的参数设置为true。例如:

ReentrantLock fairLock = new ReentrantLock(true);

但是,对于synchronized关键字来说,你无法直接指定它是公平锁还是非公平锁。如果你需要更细粒度的锁控制,建议使用ReentrantLock或者其他并发工具类。

分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>