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 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
        }


来自为知笔记(Wiz)


转载于:https://www.cnblogs.com/apescode/p/9111976.html

你可能感兴趣的:(JAVA Synchronized和Lock实现原理)