为什么 X.Org 不是多线程的?

为什么 X.Org 不是多线程的?

我在这里读到 (1) X.Org 不是多线程的。引用:

某些运行密集图形操作的应用程序可以轻松冻结您的桌面(一个简单且易于重现的示例:在 Wine 下运行 Adob​​e Photoshop 7.0,打开足够大的图像并应用复杂的过滤器 - 看到您的图形会话完全消失,直到 Photoshop 完成其操作)。

我的电脑经常出现这个问题。在 Windows 上(抱歉进行比较)这种情况不会经常发生。即使在密集计算期间,GUI 仍保持一定的响应能力。

为什么 X.Org 是这样设计的?

未来是否有计划解决这个问题(也许使用 Wayland、Mir 等替代方案)?

目前是否有替代的 Linux 桌面至少可以部分解决这个问题?

  1. http://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.current.html

答案1

可能相关的问题:“X.org 软件的任何部分都是多线程的吗?”

引用其中一个答案:

在 ES Raymond 的书中,作者引用了 。

X 服务器每秒能够执行数百万次操作,但它不是线程化的;它使用轮询/选择循环。进行多线程实现的各种努力都没有取得好的结果。对于像图形服务器这样对性能敏感的东西来说,锁定和解锁的成本太高了。 ——吉姆·盖蒂斯

据我了解,客户端可以是多线程的,这仅取决于实现。这同样适用于 Wayland,它的客户端可以是多线程的,从01.org:

客户端库旨在很好地集成到工具包事件循环中,并在单线程和多线程环境中工作。

相关内容