java正在从另一个线程更新对象成员变量
我需要在成员变量到期之前刷新它。我选择从另一个线程执行,该线程是从定期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;
}
}
}
我想知道这样从另一个线程重写成员变量是否是一种好的做法,以及是否有更干净的替代方法
共 (0) 个答案