JAVA Synchronized和Lock实现原理
一、Synchronized实现
try {
if (!MsOnionRegexUtils.checkDigit(idxStr)) {
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_PARAMETER_ILLEGAL + ", idxStr=" + idxStr);
}
if (!MsOnionRegexUtils.isNumeric(statusStr)) {
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400,
MessageConstants.MESSAGE_PARAMETER_ILLEGAL + ", statusStr=" + statusStr);
}
idx = Long.parseLong(idxStr);
status = Short.parseShort(statusStr);
// 查询仓库是否关联商品,不能删除
CollectorItemExample example = new CollectorItemExample();
CollectorItemExample.Criteria criteria = example.createCriteria();
criteria.andWarehouseTypeIdxEqualTo(idx);
List<CollectorItem> list = itemService.queryByExample(msOnionApiVersion, example);
if (MsOnionCollectionUtils.isNotEmpty(list)) {
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, "仓库已关联商品,不能删除");
}
int result = warehouseTypeService.updateStatus(msOnionApiVersion, idx, status);
if (result > 0) {
return MsOnionResult.ok();
}
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_SERVER_ERROR);
} catch (MsOnionIllegalArgumentException e) {
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_PARAMETER_ILLEGAL);
} catch (MsOnionException e) {
return MsOnionResult.build(MsOnionStatusConstants.STATUS_500, MessageConstants.MESSAGE_SERVER_ERROR);
}1
try {2
if (!MsOnionRegexUtils.checkDigit(idxStr)) {3
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_PARAMETER_ILLEGAL + ", idxStr=" + idxStr);4
}5
if (!MsOnionRegexUtils.isNumeric(statusStr)) {6
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400,7
MessageConstants.MESSAGE_PARAMETER_ILLEGAL + ", statusStr=" + statusStr);8
}9
idx = Long.parseLong(idxStr);10
status = Short.parseShort(statusStr);11
12
// 查询仓库是否关联商品,不能删除13
CollectorItemExample example = new CollectorItemExample();14
CollectorItemExample.Criteria criteria = example.createCriteria();15
criteria.andWarehouseTypeIdxEqualTo(idx);16
List<CollectorItem> list = itemService.queryByExample(msOnionApiVersion, example);17
if (MsOnionCollectionUtils.isNotEmpty(list)) {18
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, "仓库已关联商品,不能删除");19
}20
int result = warehouseTypeService.updateStatus(msOnionApiVersion, idx, status);21
if (result > 0) {22
return MsOnionResult.ok();23
}24
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_SERVER_ERROR);25
26
} catch (MsOnionIllegalArgumentException e) {27
return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_PARAMETER_ILLEGAL);28
} catch (MsOnionException e) {29
return MsOnionResult.build(MsOnionStatusConstants.STATUS_500, MessageConstants.MESSAGE_SERVER_ERROR);30
}

浙公网安备 33010602011771号