老师,我在模拟并发写文件(即传一个日期,把当天的数据生成到以日期命令的文件里) 时有一个问题,代码如下
@Servcie
public class WriteFileServiceImpl {
private static final String ROOT_PATH = "";
//标识正在处理当前文件
private static final String FLAG = "_DOING";
public boolean write(File file,Localdate date){
if(check(date)){
return false;
}
// eg. write file with data for date
return true;
}
//加锁是担心在 标识文件 没有生成之前 有多个处理 同一天的请求 进入该方法
private synchronized boolean check(Localdate date){
if(new File(rootPath+"/"+date+"/"+FLAG).exists){
// create then flag file;
return false;
}elses{
return true;
}
}
}因为我没有配置scope,默认是单例的,这样就会有一个问题,若我处理不同天的请求,也会等待进入check方法,针对这种情况,我应该如何写同步逻辑,确保只针对同一天的请求才需要加锁等待