我理解如果有两个或更多线程共享单个X显示连接,则必须在任何其他Xlib调用之前调用
但是,如果每个线程都有自己的显示连接,并且仅在该连接上操作,则是否仍需要使用
XInitThreads
。但是,如果每个线程都有自己的显示连接,并且仅在该连接上操作,则是否仍需要使用
XInitThreads
?如果使用GLX扩展,会有什么区别吗?XInitThreads
。XInitThreads
?如果使用GLX扩展,会有什么区别吗?来自文档:
只有在多个线程可能同时使用Xlib时,才需要调用此函数。如果所有对Xlib函数的调用都受到某些其他访问机制的保护(例如工具包中的互斥锁或通过显式客户端编程),则不需要进行Xlib线程初始化。建议单线程程序不要调用此函数。
因此,即使线程使用不同的连接,也必须调用XInitThreads。
我建议您在创建线程之前调用XInitThread。这样一切都应该没问题。