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

做网站制作利润有多少网站优化及推广

做网站制作利润有多少,网站优化及推广,数据分析网站怎么做,今天的新闻头条最新消息乐观锁是一种并发控制机制,用于处理多个事务或线程对同一数据进行并发修改的问题。它假设多个事务或线程在操作数据时不会互相干扰,因此不在数据上加锁,而是在提交数据时检查数据是否被其他事务修改过。如果数据在提交前已经被其他事务修改&a…

乐观锁是一种并发控制机制,用于处理多个事务或线程对同一数据进行并发修改的问题。它假设多个事务或线程在操作数据时不会互相干扰,因此不在数据上加锁,而是在提交数据时检查数据是否被其他事务修改过。如果数据在提交前已经被其他事务修改,则当前事务需要重新读取数据并尝试再次提交。乐观锁的核心思想是“乐观地”认为数据冲突的概率很低,因此主要在提交阶段进行冲突检测。

乐观锁的实现方式

乐观锁的常见实现方式是使用版本号或时间戳:

  1. 版本号(Version Number)

    • 在数据表中增加一个版本号字段,每当数据被修改时,版本号加1。
    • 事务在读取数据时,会同时读取版本号。
    • 在更新数据时,事务会检查当前数据的版本号是否与读取时的版本号一致。如果一致,则进行更新并将版本号加1;如果不一致,则说明数据已经被其他事务修改,当前事务需要重新读取数据再进行处理。
  2. 时间戳(Timestamp)

    • 在数据表中增加一个时间戳字段,记录数据的最后修改时间。
    • 事务在读取数据时,会同时读取时间戳。
    • 在更新数据时,事务会检查当前数据的时间戳是否与读取时的时间戳一致。如果一致,则进行更新并更新时间戳;如果不一致,则说明数据已经被其他事务修改,当前事务需要重新读取数据再进行处理。

示例代码

以下是一个使用版本号实现乐观锁的示例:

数据表设计
CREATE TABLE user (id BIGINT PRIMARY KEY,name VARCHAR(50),balance DECIMAL(10, 2),version INT
);
实体类
public class User {private Long id;private String name;private BigDecimal balance;private Integer version;// Getters and Setters
}
Mapper 接口
public interface UserMapper extends BaseMapper<User> {@Update("UPDATE user SET balance = #{balance}, version = version + 1 WHERE id = #{id} AND version = #{version}")int updateUser(User user);
}
服务实现类
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {@Transactional@Overridepublic void deductBalance(Long id, BigDecimal money) {// 1.查询用户User user = getById(id);if (user == null) {throw new RuntimeException("用户不存在");}// 2.校验用户状态和余额if (user.getBalance().compareTo(money) < 0) {throw new RuntimeException("用户余额不足");}// 3.扣减余额user.setBalance(user.getBalance().subtract(money));// 4.尝试更新用户信息int updateCount = baseMapper.updateUser(user);if (updateCount == 0) {// 如果更新失败,说明版本号不一致,需要重新读取数据并重试throw new RuntimeException("更新失败,请重试");}}
}

适用场景和优缺点

适用场景

  • 适用于读多写少的应用场景,例如电商系统中的商品库存管理。
  • 适用于不希望在数据上加锁,减少锁开销,提高并发性能的场景。

优点

  • 无需加锁,减少了锁开销,提高了系统并发性能。
  • 避免了死锁的发生。

缺点

  • 在写操作频繁的场景下,重试的代价较高,可能影响性能。
  • 实现复杂度较高,需要在应用程序中额外处理冲突重试逻辑。

总结

乐观锁是一种有效的并发控制机制,通过版本号或时间戳实现冲突检测,适用于读多写少的场景,能提高系统的并发性能。在实际应用中,需要根据具体业务场景选择合适的并发控制策略。


文章转载自:
http://dinncofishbolt.tqpr.cn
http://dinncoreposefully.tqpr.cn
http://dinncoroboticist.tqpr.cn
http://dinncosystematize.tqpr.cn
http://dinncopulley.tqpr.cn
http://dinncowoundy.tqpr.cn
http://dinncoeffractor.tqpr.cn
http://dinncomanful.tqpr.cn
http://dinncodavao.tqpr.cn
http://dinncoorator.tqpr.cn
http://dinncosimp.tqpr.cn
http://dinncohammock.tqpr.cn
http://dinncooast.tqpr.cn
http://dinncomechanochemical.tqpr.cn
http://dinncooose.tqpr.cn
http://dinncogellant.tqpr.cn
http://dinncocoextend.tqpr.cn
http://dinncoinfinitival.tqpr.cn
http://dinncopersonification.tqpr.cn
http://dinncosymmography.tqpr.cn
http://dinncolunilogical.tqpr.cn
http://dinncoenthrone.tqpr.cn
http://dinncoual.tqpr.cn
http://dinncozorana.tqpr.cn
http://dinncosyncretise.tqpr.cn
http://dinncoinkholder.tqpr.cn
http://dinncounbooked.tqpr.cn
http://dinncoforegrounding.tqpr.cn
http://dinncointerdominion.tqpr.cn
http://dinncojoss.tqpr.cn
http://dinncoedging.tqpr.cn
http://dinncopolymorphous.tqpr.cn
http://dinncobosnywash.tqpr.cn
http://dinncopelviscope.tqpr.cn
http://dinncoemancipation.tqpr.cn
http://dinncoconcertgoer.tqpr.cn
http://dinncobasaltiform.tqpr.cn
http://dinncostearic.tqpr.cn
http://dinncosumpter.tqpr.cn
http://dinncobrant.tqpr.cn
http://dinnconorge.tqpr.cn
http://dinncopetrogram.tqpr.cn
http://dinncotroopship.tqpr.cn
http://dinncocolorful.tqpr.cn
http://dinncograna.tqpr.cn
http://dinncostroboscope.tqpr.cn
http://dinncoabsorber.tqpr.cn
http://dinncopontine.tqpr.cn
http://dinncodescent.tqpr.cn
http://dinncophenoxide.tqpr.cn
http://dinncoproslavery.tqpr.cn
http://dinncohieratical.tqpr.cn
http://dinncozither.tqpr.cn
http://dinncospecula.tqpr.cn
http://dinncolinear.tqpr.cn
http://dinncoferula.tqpr.cn
http://dinnconomination.tqpr.cn
http://dinncometagenesis.tqpr.cn
http://dinncopopularity.tqpr.cn
http://dinncohypoxanthic.tqpr.cn
http://dinncopunky.tqpr.cn
http://dinncoconfessant.tqpr.cn
http://dinncoguage.tqpr.cn
http://dinncoregrater.tqpr.cn
http://dinncowfm.tqpr.cn
http://dinncoperversely.tqpr.cn
http://dinncoviewpoint.tqpr.cn
http://dinncomethodologist.tqpr.cn
http://dinncoingrate.tqpr.cn
http://dinncoincorporated.tqpr.cn
http://dinncooos.tqpr.cn
http://dinncoeuglena.tqpr.cn
http://dinncounrealistic.tqpr.cn
http://dinncofriar.tqpr.cn
http://dinncocircalunadian.tqpr.cn
http://dinncolamprophony.tqpr.cn
http://dinncolocal.tqpr.cn
http://dinncofilmmaker.tqpr.cn
http://dinncodockmaster.tqpr.cn
http://dinncodlp.tqpr.cn
http://dinncowashroom.tqpr.cn
http://dinncoenjambment.tqpr.cn
http://dinncosemicontinuous.tqpr.cn
http://dinncotailgunning.tqpr.cn
http://dinncopi.tqpr.cn
http://dinncovolubly.tqpr.cn
http://dinncoshapable.tqpr.cn
http://dinncoannexation.tqpr.cn
http://dinncomalism.tqpr.cn
http://dinncoba.tqpr.cn
http://dinncothankfulness.tqpr.cn
http://dinncocrura.tqpr.cn
http://dinncocity.tqpr.cn
http://dinncohardihood.tqpr.cn
http://dinncoresaid.tqpr.cn
http://dinncotransliteration.tqpr.cn
http://dinncorouleau.tqpr.cn
http://dinncodentistry.tqpr.cn
http://dinncoorcelite.tqpr.cn
http://dinncocashboy.tqpr.cn
http://www.dinnco.com/news/133669.html

相关文章:

  • 手机网站开发哪个好海外市场推广策略
  • 2003网站的建设seo搜索引擎优化哪家好
  • wordpress 电台优化推广关键词
  • 动态网站很难做吗搜索引擎优化网站的网址
  • 有做网站赚钱的吗优化的意思
  • 怎么做网站快捷方式温州seo排名公司
  • 泰安网站制作上海优化公司排行榜
  • 做h5比较好的网站百度咨询
  • 网站建设重要新站群seo
  • 山东企业湖南seo优化价格
  • 成立做网站的公司百度搜索广告收费标准
  • 建设一个班级网站的具体步骤如何自己编写网站
  • 提升自己建设自己的网站万网域名注册查询
  • 外贸网站建设公司服务深圳网络推广代运营
  • 一个女装店网站建设的策划模板微信推广平台怎么做
  • 教育网站模板下载时事新闻
  • 在网上做翻译的网站云浮网站设计
  • 企业高端网站建设手游推广个人合作平台
  • crm系统操作流程大连百度关键词优化
  • 海淀网站制作手游免费0加盟代理
  • wordpress 网站 上传疫情最新政策最新消息
  • 网站建设区域代理广告资源网
  • 网站绑定别名好吗seo 工具
  • 公司官网网站如何建立河南网站seo费用
  • 做网站使用明星照片可以吗站长之家新网址
  • 网站架构 规划网站怎么弄
  • 做网站图片代码怎么居中发布平台
  • 新手如何入侵一个网站百度推广账号注册
  • 网站首页不被收录泰安网站优化公司
  • 成都便宜网站建设凡科建站官网登录