我正在使用qt c ++创建一个基本的聊天应用程序,其中服务器必须使用线程为多个客户端提供服务,现在我想使用QHash变量存储套接字描述符和相应用户的名称。 所以我真的不明白如何声明一个全局QHash变量,以便每个线程可以更新该变量的值。 我确实尝试将套接字描述符存储到sqlite数据库,但它确实成功了。怎么进一步?
答案 0 :(得分:1)
您总是可以使用必要的可见性来全局声明它,或者将其设置为静态,尽管使用线程直接访问的全局存储是不好的做法。如果你真的想保留套接字的跟踪,你可以创建一种缓存,线程可以注册和注销新的/完整的聊天会话。此外,您必须考虑一下concurecny,因为多个线程可以在同一时刻注册,并且此时它会破坏您的代码。
答案 1 :(得分:0)
将您的哈希放入类中。然后阅读有关线程安全和QMutex的信息。