我何时需要调用XInitThreads?

4
我理解如果有两个或更多线程共享单个X显示连接,则必须在任何其他Xlib调用之前调用XInitThreads
但是,如果每个线程都有自己的显示连接,并且仅在该连接上操作,则是否仍需要使用XInitThreads?如果使用GLX扩展,会有什么区别吗?
1个回答

1

来自文档:

只有在多个线程可能同时使用Xlib时,才需要调用此函数。如果所有对Xlib函数的调用都受到某些其他访问机制的保护(例如工具包中的互斥锁或通过显式客户端编程),则不需要进行Xlib线程初始化。建议单线程程序不要调用此函数。

因此,即使线程使用不同的连接,也必须调用XInitThreads。

我建议您在创建线程之前调用XInitThread。这样一切都应该没问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接