zoukankan      html  css  js  c++  java
  • 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);
            }




  • 相关阅读:
    查询表结构
    centos使用docker发布.netcore3.0项目
    <五>输入输出模型的建立及登陆验证
    <二>引入NFine样式文件和登录界面
    <一>前言
    使用GUI工具高效构建你自己的Nuget包
    Angular开发者手册重点翻译之指令(一)
    WCF中操作的分界于调用顺序和会话的释放
    WCF中数据契约之已知类型的几种公开方式
    Singal Page App:使用Knockout和RequireJS创建高度模块化的单页应用引擎
  • 原文地址:https://www.cnblogs.com/apescode/p/9111976.html
Copyright © 2011-2022 走看看