【问题标题】:When do I have to call XInitThreads?我什么时候必须调用 XInitThreads?
【发布时间】:2013-07-02 09:14:04
【问题描述】:

我了解,如果有两个或多个线程共享一个 X 显示连接,则必须在调用任何其他 Xlib 之前调用 XInitThreads

但是,如果每个线程都有自己的显示器连接并且只在该连接上运行呢? XInitThreads 还需要吗?如果我使用 GLX 扩展程序会有什么不同吗?

【问题讨论】:

    标签: multithreading xlib glx


    【解决方案1】:

    来自文档:

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

    所以,似乎即使线程使用不同的连接,也必须调用 XInitThreads。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-08
      • 2013-10-23
      • 2013-04-30
      • 1970-01-01
      • 2011-03-18
      • 2012-04-26
      • 2016-10-22
      相关资源
      最近更新 更多