我在我的多线程应用程序中的类之间的交互中遇到了一些困难,我的主聊天服务器类首先创建一个DBConnection管理器类,然后为连接到我的服务器的每个客户端创建一个线程。当客户端连接时,我将连接传递给客户端线程,以便客户端可以与数据库进行交互,然后在完成时将连接返回到池。如何正确构造我的类
问题发生,如果连接到数据库下降,我的客户端线程无法重新建立数据库连接池,因为它可以重新初始化的唯一方式是与其“超级”对话,现在我不能使用超级语句作为我的clientThread范围线程而不是我的主要聊天服务器类。我怎么解决这个问题?
嗨詹姆斯,也许我没有解释好,我的主类创建数据库连接,我将它传递到每个线程,以便我不创建每个线程的连接,线程只是使一个连接(从连接池中拉出)需要数据交换时。基本上我需要让我的客户端线程与主要类进行通信,在主要类中,如果数据库连接断开,需要重新建立数据库连接。 –
@XarionComoretto,将建立连接的代码作为Client类的一部分,并让服务器线程在构造客户端时传递客户端需要的所有对象作为参数将会更清晰。这正是我想用我的例子来说明的。 –
谢谢,这将是一个问题,我要保持一个连接打开为每个客户端连接,因为你的解决方案建议,但如果我不来对我只需要将dbconnection管理器移动到客户端线程。 –