我正在使用下面的代码,这些代码使用回调将在0-2分钟和2分钟到5分钟内运行的任务数记录到监视系统中。 两种方法: 1. checkLongRunningReportsOperationInst :: getCurrentRunningReports0MTo2MCount
2。 checkLongRunningReportsOperationInst :: getCurrentRunningReports2MTo5MCount
是每1分钟执行一次的lambda。我的问题是,如果我使用ynchronized(checkLongRunningReportsOperationInst),两个lambda是否将在单个原子操作中执行?这意味着没有其他线程会执行在checkLongRunningReportsOperationInst对象中定义的这两个变量的更新方法。我已经在此checkLongRunningReportsOperationInst对象上同步了更新方法。
已同步(checkLongRunningReportsOperationInst){ metricBuilder.newGauge(checkLongRunningReportsOperationInst :: getCurrentRunningReports0MTo2MCount,COUNT_OF_CURRENT_RUNNING_REPORTS_IN_BUCKET,BiReportMonitoringUtils.ReportRuntimeBucketName._0M_TO_2M.getName());
metricBuilder.newGauge(checkLongRunningReportsOperationInst::getCurrentRunningReports2MTo5MCount, COUNT_OF_CURRENT_RUNNING_REPORTS_IN_BUCKET, BiReportMonitoringUtils.ReportRuntimeBucketName._2M_TO_5M.getName());
}