我知道XInitThreads()
将允许我从主线程以外的线程调用 X 服务器,如果我想使用 Qt 从辅助线程进行 OpenGL 调用,Xlib 中的并发线程支持是必要的。我对我的应用程序有这样的需求,但在非常罕见的情况下。不幸的是,XInitThreads() 需要在我的应用程序执行的一开始就被调用,因此无论我是否需要它来进行特定的运行都会影响它(在我运行应用程序之前我无法知道我是否需要多线程 OpenGL支持与否)。
我很确定如果我无用地调用 XInitThread(),应用程序的整体行为将保持不变,但编程就是权衡取舍,我很确定多线程支持不是 Xlib 的默认行为是有原因的。
手册页说建议单线程程序不要调用此函数,但没有说明原因。调用 XInitThreads() 时的权衡是什么?