首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法实例化类型锁定

无法实例化类型锁定
EN

Stack Overflow用户
提问于 2012-10-25 08:22:39
回答 1查看 4.4K关注 0票数 1
  1. 为了防止java中的饥饿,使用而不是声明同步函数时,不能实例化锁类型
  2. 它是否需要像上面的FairLock那样实现http://tutorials.jenkov.com/java-concurrency/starvation-and-fairness.html do java的锁相等的FairLock?它说FairLock会降低性能,在实际操作中会是什么? 锁=新锁();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-25 08:43:06

您可能正在尝试实例化一个java.util.concurrent.locks.Lock,它是一个接口。那当然行不通。您需要实例化一个实现,例如ReentrantLock,这是在Java中执行“灵活”锁的标准方法,在简单的监视器锁还不够的情况下。它的文件对公平性有一些看法:

这个类的构造函数接受一个可选的公平参数。当设置为true时,在争用项下,锁倾向于授予对等待时间最长的线程的访问权限。否则,此锁不保证任何特定的访问顺序。使用由许多线程访问的公平锁的程序可能比使用默认设置的程序显示更低的总体吞吐量(例如,速度较慢;通常要慢得多),但有时差异较小,以获得锁并保证缺乏饥饿。但是,请注意,锁的公平性并不能保证线程调度的公平性。因此,使用公平锁的多个线程中的一个可以连续多次获得该锁,而其他活动线程则没有进展,目前也没有保存该锁。还请注意,非定时tryLock方法不符合公平设置。如果锁可用,即使其他线程正在等待,它也会成功。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13064485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档