我需要在成员变量过期之前刷新它。我选择从另一个线程执行它,该线程是从定期scheduledexecutorservice任务派生的。我的目标是在一个连接对象到期之前刷新它,这是在一个固定的时间之后发生的,比如说大约2小时,服务器会关闭它,可能会有一些潜在的数据丢失。我的代码如下
class Main {
static ScheduledExecutorService clientReconnectPool = Executors.newScheduledThreadPool(10);
Client client;
Main() {
clientReconnectPool.scheduleAtFixedRate(() -> {
reconnectClient();
}, 1, 1, TimeUnit.HOURS);
}
void reconnectClient() {
Client newClient = initClient();
if (newClient != null) {
cleanupOldClient();
client = newClient;
}
}
}
我想知道从另一个线程覆盖一个成员变量是否是一个好的做法,比如上面提到的,以及是否有更干净的替代方法。
暂无答案!
目前还没有任何答案,快来回答吧!