问题标签 [monitors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - 我应该如何在 directx/opengl 中解释 RGB 颜色?
因此,有许多不同的颜色空间,名称为 RGB。有些是线性的,有些是伽玛。我假设正在使用哪一个因监视器而异。
我应该将directx或opengl着色器中的rgb值解释为哪一个?
是否有我可以假设典型用户将使用的“安全”色彩空间?比如,游戏行业的每个人都认为他们的用户会使用 RGB 空间吗?
或者有没有办法检测显示器正在使用什么色彩空间?
我需要知道,这样我才能在 CIE XYZ 等标准色彩空间之间进行转换。如果它有点错误,那很好,但我希望尽可能接近典型的硬件。
google-chrome - Chrome stable 和 Chrome Canary 使用不同的颜色配置文件(Mac OSX)
下面是相同十六进制代码的屏幕截图。右边是 Canary,左边是 Chrome 的稳定版本。Canary 使用了错误的颜色配置文件(我认为),明亮的版本是“错误的”版本。有谁知道我如何找出问题所在以及如何解决?
我知道颜色在不同的显示器上看起来总是不同的,但奇怪的是它发生在我的笔记本电脑屏幕上,有两种不同的浏览器。此外,有些事情可能会触发稳定版本使用错误的颜色配置文件。例如:
- 嵌入 iframe
- -webkit-backface-visibility:隐藏;
我发现这两个导致 Chrome stable 改变颜色(我认为这是因为它使用不同的颜色配置文件)。结果是在页面加载时看到我所有颜色的快速变化。我已经通过背面可见性对其进行了测试,检查了元素并勾选了 css 属性的开/关,我肯定会看到颜色的变化。
这是区别:
我使用的是 MacBook Pro OSX 10.8.2。
c - 生产者/消费者 Mesa vs Hoare 语义
我遇到了两种不同的监视器实现。一种使用 while 循环的方法,该循环在每次入睡前检查特定条件是否为真,并在从睡眠中醒来时再次检查。另一个只检查一次 if 条件是否为真,如果不是,则进入睡眠状态,但在唤醒时不再检查。我相信前者使用 Mesa 语义,后者使用 Hoare 语义。我相信维基百科实现生产者消费者问题(http://en.wikipedia.org/wiki/Producer-consumer_problem#Using_monitors)的方式是使用 Mesa 语义。我们将如何使用 Hoare 来实现这一点?
会是这样吗?
java - 父子线程之间的同步(子线程“在监视器上”)
我对 Java 尤其是并发编程相当陌生,所以如果这是一个新手问题,请原谅我。
我有一个线程(服务器),它管理一组子线程(每个线程代表客户端和服务器之间的会话)。服务器维护一个会话集合,当会话结束时,它会向父服务器发出它已完成的信号,以便服务器可以将其从会话集合中删除。
有人告诉我,如果您打算将 ArrayLists 与线程一起使用,则需要保护它们,并且除非同步,否则 int 也可能存在问题,因此使用两者的方法是同步的。
服务器和会话对象的相关部分如下。
这是会话类:
我遇到的问题出在会话的 CleanupClient 方法中。当服务器中的 CleanupSession 方法标记为同步时,会话线程似乎不会终止。相反,根据 Netbeans 的说法,它们进入了一个名为“On Monitor”的状态。
我试图找出这意味着什么以及如何处理它并没有帮助。我确实发现监视器就像一个只能由单个线程占用的空间,其他线程必须等待轮到它才能使用它,这就是Java中实现并发的方式。但是,我找不到解释,为什么在父类中调用同步方法的子线程会触发线程明显永久地进入这种状态,或者如何处理它。
我确实发现,如果 Server 类中的 cleanupSession 方法没有标记为同步,那么线程会按照我的预期终止。但是,如果我需要同步以维护线程安全,那么我不能只让方法不同步并相信运气。
我显然缺少一些基本的东西,但我不确定是什么。如果有人能指出我在这里做错了什么,我将不胜感激。
(附录:我希望我应该使用其他一些 Collection 类而不是 ArrayList,并且知道它是什么对于解决这个特殊情况肯定会很好,但我也想在如何避免这个问题的反馈一般情况下,唯一可用的选项是同步)
java - notifyall() 不是最后一条语句
假设我在 Java 中有一个读/写监视器实现。
多位读者或一位作者可以同时访问数据库(不能同时访问两者)
现在,如果notifyAll()
不是同步方法中的最后一条语句,这有关系吗?
认为:
1)EndRead()
执行
2)notifyAll()
通知所有等待线程
3)然后它减少了读者数量。
当它执行时notifyAll()
,是否会因为唤醒的线程等待 RWmonitor 上的锁被释放而成本更高?(假设锁定 RWmonitor 的线程仍在readers--;
)
c# - C#中的线程同步
我有 2 个线程(在打印机和计数器类中)。计数器类更新存储中的属性,打印机打印它。现在我只想按计数器打印更新的值一次。那么如何在打印最后一个更新的数字后停止执行我的打印机线程。它有时会打印最后一个数字一次或有时不止一次。基本上我需要更新一个属性,每次更新该属性时,我都需要在控制台上打印更新的值,并且打印机线程不知道将要发生的更新数量。所以它应该在更新线程停止更新时停止。
代码是这样的:
c# - 带有 Monitor.Wait 和 Monitor.Pulse 的 C# 生产者-消费者模式
考虑以下阻塞生产者和消费者线程的实现:
假设当生产线程进入时Monitor.Wait
,它等待两件事:
- 从消费者线程脉冲,和
- 用于重新获得锁
在上面的代码中,我在Pulse
andWait
调用之间进行了消耗性的工作。
所以如果我这样写我的消费线程(等待前立即脉冲):
我没有注意到行为有任何变化。有什么指导方针吗?我们通常应该Pulse
紧接在我们之前Wait
还是在性能方面可能存在差异?
c# - Monitor.Wait 超时永远不会超时
所以我使用 Monitor.Wait 进行了一个简单的测试,超时设置为三秒。据我了解,当时间到期时,会向监视器发送一个虚拟脉冲以释放等待。然而,在我的测试中,这似乎从未发生过。有人可以解释发生了什么。这是我的测试代码:
c# - Dual Monitor Screen Capture issue
I have dual monitors and I am working on a product that allows you to record your computer screen. Currently, I am using the following code:
Rectangle screenArea = Rectangle.Empty; foreach (System.Windows.Forms.Screen screen in System.Windows.Forms.Screen.AllScreens){ screenArea = Rectangle.Union(screenArea, screen.Bounds); }
Which inevitably (in my case) records the entirety of the desktop. With the aspect ratio of both screens, where "screenArea" is the area being recorded. Is there a way in which I can specify the active monitor in which the program is running on?
Thanks for any help, Christopher.
windows-8 - 从 Windows 8 注册表确定屏幕是否处于活动状态
我正在查看 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY 中的监视器列表
在 Windows 7 中,每个屏幕节点下都有一个名为“Control”的子项,用于指示屏幕是否处于活动状态。在 Windows 8 中没有这样的子项。
如何从 Windows 8 注册表中确定监视器是否处于活动状态?