![为什么 X.Org 不是多线程的?](https://linux22.com/image/85162/%E4%B8%BA%E4%BB%80%E4%B9%88%20X.Org%20%E4%B8%8D%E6%98%AF%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%9A%84%EF%BC%9F%20.png)
我在这里读到 (1) X.Org 不是多线程的。引用:
某些运行密集图形操作的应用程序可以轻松冻结您的桌面(一个简单且易于重现的示例:在 Wine 下运行 Adobe Photoshop 7.0,打开足够大的图像并应用复杂的过滤器 - 看到您的图形会话完全消失,直到 Photoshop 完成其操作)。
我的电脑经常出现这个问题。在 Windows 上(抱歉进行比较)这种情况不会经常发生。即使在密集计算期间,GUI 仍保持一定的响应能力。
为什么 X.Org 是这样设计的?
未来是否有计划解决这个问题(也许使用 Wayland、Mir 等替代方案)?
目前是否有替代的 Linux 桌面至少可以部分解决这个问题?
答案1
可能相关的问题:“X.org 软件的任何部分都是多线程的吗?”
引用其中一个答案:
在 ES Raymond 的书中,作者引用了 。
X 服务器每秒能够执行数百万次操作,但它不是线程化的;它使用轮询/选择循环。进行多线程实现的各种努力都没有取得好的结果。对于像图形服务器这样对性能敏感的东西来说,锁定和解锁的成本太高了。 ——吉姆·盖蒂斯
据我了解,客户端可以是多线程的,这仅取决于实现。这同样适用于 Wayland,它的客户端可以是多线程的,从01.org:
客户端库旨在很好地集成到工具包事件循环中,并在单线程和多线程环境中工作。