当前位置: 首页 > news >正文

换模板搭建网站怎么做公司门户网站制作需要多少钱

换模板搭建网站怎么做,公司门户网站制作需要多少钱,网站设计风格化,wordpress网站中英文切换1 悲观锁和乐观锁场景和介绍 乐观锁和悲观锁是在并发编程中用于处理并发访问和资源竞争的两种不同的锁机制!! 1.1 悲观锁#xff1a; 悲观锁的基本思想是#xff0c;在整个数据访问过程中#xff0c;将共享资源锁定#xff0c;以确保其他线程或进程不能同时访问和修改该…1 悲观锁和乐观锁场景和介绍 乐观锁和悲观锁是在并发编程中用于处理并发访问和资源竞争的两种不同的锁机制!! 1.1 悲观锁 悲观锁的基本思想是在整个数据访问过程中将共享资源锁定以确保其他线程或进程不能同时访问和修改该资源。悲观锁的核心思想是先保护再修改。在悲观锁的应用中线程在访问共享资源之前会获取到锁并在整个操作过程中保持锁的状态阻塞其他线程的访问。只有当前线程完成操作后才会释放锁让其他线程继续操作资源。这种锁机制可以确保资源独占性和数据的一致性但是在高并发环境下悲观锁的效率相对较低。 1.2 乐观锁 乐观锁的基本思想是认为并发冲突的概率较低因此不需要提前加锁而是在数据更新阶段进行冲突检测和处理。乐观锁的核心思想是先修改后校验。在乐观锁的应用中线程在读取共享资源时不会加锁而是记录特定的版本信息。当线程准备更新资源时会先检查该资源的版本信息是否与之前读取的版本信息一致如果一致则执行更新操作否则说明有其他线程修改了该资源需要进行相应的冲突处理。乐观锁通过避免加锁操作提高了系统的并发性能和吞吐量但是在并发冲突较为频繁的情况下乐观锁会导致较多的冲突处理和重试操作。 理解点: 悲观锁和乐观锁是两种解决并发数据问题的思路,不是具体技术!!! 1.3 具体技术和方案: 乐观锁实现方案和技术 版本号/时间戳为数据添加一个版本号或时间戳字段每次更新数据时比较当前版本号或时间戳与期望值是否一致若一致则更新成功否则表示数据已被修改需要进行冲突处理。CASCompare-and-Swap使用原子操作比较当前值与旧值是否一致若一致则进行更新操作否则重新尝试。无锁数据结构采用无锁数据结构如无锁队列、无锁哈希表等通过使用原子操作实现并发安全。 悲观锁实现方案和技术 锁机制使用传统的锁机制如互斥锁Mutex Lock或读写锁Read-Write Lock来保证对共享资源的独占访问。数据库锁在数据库层面使用行级锁或表级锁来控制并发访问。信号量Semaphore使用信号量来限制对资源的并发访问。 2. 乐观锁实现 2.1 版本号乐观锁技术的实现流程: 每条数据添加一个版本号字段version取出记录时获取当前 version更新时检查获取版本号是不是数据库当前最新版本号如果是[证明没有人修改数据], 执行更新, set 数据更新 , version version 1 如果 version 不对[证明有人已经修改了]我们现在的其他记录就是失效数据!就更新失败 2.2 使用mybatis-plus数据使用乐观锁 添加版本号更新插件 Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return interceptor;}乐观锁字段添加Version注解 注意: 数据库也需要添加version字段 ALTER TABLE USER ADD VERSION INT DEFAULT 1 ; # int 类型 乐观锁字段支持的数据类型只有:int,Integer,long,Long,Date,Timestamp,LocalDateTime仅支持 updateById(id) 与 update(entity, wrapper) 方法 Version private Integer version;2.3 测试 //演示乐观锁生效场景 Test public void testQuick7(){//步骤1: 先查询,在更新 获取version数据//同时查询两条,但是version唯一,最后更新的失败User user userMapper.selectById(5);User user1 userMapper.selectById(5);user.setAge(20);user1.setAge(30);userMapper.updateById(user);//乐观锁生效,失败!userMapper.updateById(user1); }上述案例的操作流程为 user和user1都先进行查询操作这一步也获取到了versionuser对age进行了修改此时数据库的version已经得到了更新user1在随后的修改时会检查自己获得的version与目前数据库中的version是否一致。此时发现并不一致因为user对数据库进行了修改。因此user1的修改操作失败。
http://www.pierceye.com/news/11929/

相关文章:

  • 网站排名第一有没有发布需求的平台
  • 住房及城乡建设部网站企业网企业网站制作
  • 网站方案 模板wordpress 酒店
  • 常州建设企业网站直播秀场网站开发
  • 北京的网站开发公司建筑人才网招聘官网首页
  • 网站域名登陆地址网站开发实战项目
  • 登陆国外网站速度慢互联网公司排名广州
  • 招商加盟网站开发网站正在建设中 英语翻译
  • 网站维护网站建设井冈山保育院网站建设
  • 网页设计与网站开发经济可行性2024房地产最新消息
  • 分类门户网站系统2021年十大热点事件
  • wordpress建手机网站吗企业为什么要做短视频营销
  • 用vs做网站襄阳专业网站建设
  • 网站优化课程培训网站的开发环境
  • 做网站筹钱需要多少钱示范校建设验收网站
  • 怎么给网站做第三方app小程序个人开发全过程
  • 中山市做网站百度贴吧网站开发需求分析
  • 网站开发w亿玛酷1流量订制西昌有哪些做网站的公司
  • 微信手机网站开发广州品牌网站设计
  • 巨野住房和城乡建设局网站仿腾讯视频网站源码
  • 网页设计学校网站制作为什么网站权重会掉
  • wordpress封采集站ip做外贸要自己建网站吗
  • 3g手机网站建设收款后自动发货的网站是怎么做的
  • 宁波网站开发建设京东网站设计代码
  • 帝国cms网站地图生成网址正能量
  • 双语外贸网站源码杭州学编程哪里的培训机构好
  • 大理 网站建设wordpress获取所有文章列表
  • 一个域名一个ip做多个网站如何做百度的网站
  • 给宝宝做衣服网站好个人网页制作 个人主页
  • ps做网站标签门户网站免费建站