- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 SynchronousQueue 的应用程序中使用 1producer-1consumer 设计。到目前为止,我将它与默认构造函数 (fair=true) 一起使用。我想知道“fair=false”将如何影响系统(性能和特别是并发行为)。
Here what the docs tell:
SynchronousQueue
public SynchronousQueue()
Creates a SynchronousQueue with nonfair access policy.
SynchronousQueue
public SynchronousQueue(boolean fair)
Creates a SynchronousQueue with the specified fairness policy.
Parameters:
fair - if true, waiting threads contend in FIFO order foraccess; otherwise the order is unspecified.
提前致谢。
最佳答案
您的问题或多或少包含了答案。无论如何,简短的回答是它不会对您的单一消费者情况产生有效影响(性能可能会下降无穷小)。
如果您将 fair
标志设置为 true,那么正如您在问题中粘贴的那样,等待线程会以 FIFO 顺序竞争访问权限。这对等待线程的调度设置了关于它们如何被重新唤醒的特定约束;一个不公平的系统没有这样的约束(因此编译器/运行时可以自由地做一些可能运行得更快的事情)。
请注意,这只会影响从正在等待的线程集中选择唤醒哪个线程;并且只有一个线程永远等待,决策算法是无关紧要的,因为它总是选择同一个线程。当您有多个线程在等待时,区别就来了 - 只要其他线程能够处理它们之间的整个工作负载,一个单独的线程从不从队列中获取任何东西是否可以接受?
关于java - 同步队列公平性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1536943/
我有一个应用程序倾向于在后台线程中执行很多数据库 Activity (下载大型数据库更新),而且这个过程经常使“UI线程”匮乏-我知道数据库是不定期发布的,但是所使用的@synchronized机制不
我正在创建一个程序,用户可以在从一组项目中选择的两个项目之间进行一系列投票。每次投票后,会显示集合中的两个新项目并对其进行投票,直到看到集合中的所有成员。 这是我的限制条件: 每个用户应该以不同的随机
我正在开发一个在线判断类型的系统,其中大约 100 个不受信任的可执行文件将同时运行并评估相同的输入数据。 我希望每个可执行文件都限制在预定义资源池的 CPU、内存、磁盘空间等的相等份额。例如,如果资
我正在从事一个关于 CFS 的项目。使用Ftrace跟踪Linux公平进程的全路径。 根据文档 https://lwn.net/Articles/370423/ . [tracing]# echo $
Semaphore 类概述 developer.android.com看起来不错 - 对于那些已经熟悉这些概念和术语的人来说。 我熟悉那里的一些首字母缩略词和其他行话(例如 FIFO、锁等),但其他的
我是一名优秀的程序员,十分优秀!