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

河北建设厅官方网站wordpress左栏主题

河北建设厅官方网站,wordpress左栏主题,河南网站建站系统平台,wordpress uploads1.悲观锁 悲观锁比较悲观#xff0c;它认为如果不锁住这个资源#xff0c;别的线程就会来争抢#xff0c;就会造成数据结果错误#xff0c;所以悲观锁为了确保结果的正确性#xff0c;会在每次获取并修改数据时#xff0c;都把数据锁住#xff0c;让其他线程无法访问该…1.悲观锁 悲观锁比较悲观它认为如果不锁住这个资源别的线程就会来争抢就会造成数据结果错误所以悲观锁为了确保结果的正确性会在每次获取并修改数据时都把数据锁住让其他线程无法访问该数据这样就可以确保数据内容万无一失。 举个例子 假设线程 A 和 B 使用的都是悲观锁所以它们在尝试获取同步资源时必须要先拿到锁。假设线程 A 拿到了锁并且正在操作同步资源那么此时线程 B 就必须进行等待。而当线程 A 执行完毕后CPU 才会唤醒正在等待这把锁的线程 B 再次尝试获取锁。如果线程 B 现在获取到了锁才可以对同步资源进行自己的操作。这就是悲观锁的操作流程。 2.乐观锁 乐观锁比较乐观认为自己在操作资源的时候不会有其他线程来干扰所以并不会锁住被操作对象不会不让别的线程来接触它同时为了确保数据正确性在更新之前会去对比在我修改数据期间数据有没有被其他线程修改过如果没被修改过就说明真的只有我自己在操作那我就可以正常的修改数据 如果发现数据和我一开始拿到的不一样了说明其他线程在这段时间内修改过数据那说明我迟了一步所以我会放弃这次修改并选择报错、重试等策略。 乐观锁的实现一般都是利用 CAS 算法实现的。 举个例子 假设线程 A 此时运用的是乐观锁。那么它去操作同步资源的时候不需要提前获取到锁而是可以直接去读取同步资源并且在自己的线程内进行计算。当它计算完毕之后、准备更新同步资源之前会先判断这个资源是否已经被其他线程所修改过。如果这个时候同步资源没有被其他线程修改更新也就是说此时的数据和线程 A 最开始拿到的数据是一致的话那么此时线程 A 就会去更新同步资源完成修改的过程。而假设此时的同步资源已经被其他线程修改更新了线程 A 会发现此时的数据已经和最开始拿到的数据不一致了那么线程 A 不会继续修改该数据而是会根据不同的业务逻辑去选择报错或者重试。 3.相关用法 悲观锁synchronized 关键字和 Lock 接口 Java 中悲观锁的实现包括 synchronized 关键字和 Lock 相关类等我们以 Lock 接口为例例如 Lock 的实现类 ReentrantLock类中的 lock() 等方法就是执行加锁而 unlock() 方法是执行解锁。处理资源之前必须要先加锁并拿到锁等到处理完了之后再解开锁这就是非常典型的悲观锁思想。 乐观锁原子类 乐观锁的典型案例就是原子类例如 AtomicInteger 在更新数据时就使用了乐观锁的思想多个线程可以同时操作同一个原子变量。 数据库 数据库中同时拥有悲观锁和乐观锁的思想。例如我们如果在 MySQL 选择 select for update 语句那就是悲观锁在提交之前不允许第三方来修改该数据这当然会造成一定的性能损耗在高并发的情况下是不可取的。相反我们可以利用一个版本 version 字段在数据库中实现乐观锁。在获取及修改数据时都不需要加锁但是我们在获取完数据并计算完毕准备更新数据时会检查版本号和获取数据时的版本号是否一致如果一致就直接更新如果不一致说明计算期间已经有其他线程修改过这个数据了那我就可以选择重新获取数据重新计算然后再次尝试更新数据。 UPDATE studentSET name ‘小李’,version 2WHERE id 100AND version 14.使用场景 悲观锁适合用于并发写入多、临界区代码复杂、竞争激烈等场景这种场景下悲观锁可以避免大量的无用的反复尝试等消耗。 乐观锁适用于大部分是读取少部分是修改的场景也适合虽然读写都很多但是并发并不激烈的场景。在这些场景下乐观锁不加锁的特点能让性能大幅提高。
http://www.hkea.cn/news/14528040/

相关文章:

  • 高端网站定制的方法滨州公司做网站
  • 内蒙古网站备案网业升级坊问
  • 开发 程序网站wordpress根目录没有.htaccess
  • 利用网站制作网页湖南刚刚发生的大事件
  • 网站工作建设站电话在线图片制作工具大全
  • 网站推广有哪些方案莱芜雪野湖天气预报
  • 农安县住房和城乡建设厅网站网站开发背景设置
  • 网站建设开发企业自建外贸网站如何推广
  • 开封网站制作哪家好商家做小程序怎么做
  • 湖南高端网站制百度投放平台
  • 做百度网站每年的费用建设金融行业网站
  • 职友集 一家做职业点评的网站建设平台公司
  • 做宣传图片的网站安徽电子信息工程技术学院校园网
  • 网站建设公司接单十堰的网络优化公司
  • 网站建设前端岗位职责西安企业黄页网站
  • 网站服务器备案查询网站天津网站建设电焊机
  • 建筑工程网是什么网站贸易公司注册需要什么条件
  • 做网站前需要准备什么做一个网站做少多少钱
  • 美食网站源代码广州seo网站推广平台
  • 客户评论 网站建设爱客crm系统官网
  • 网站建设个人先进材料wordpress的静态数据
  • 企业网站seo实青岛九二网络科技有限公司
  • 网页设计工资一般多少2017合肥seo网站建设费用
  • 网站 概念设计mvc5网站开发之六
  • wordpress主题的网站模板云匠网官网
  • 百度企业网站建设费用软件班级网站建设
  • houzz室内设计app宁波seo整体优化公司
  • 承德名城建设集团网站qq浏览器直接打开网页
  • 哈尔滨企业网站建设报价电脑配件经营网站的建设论文
  • 网站开发介绍ppt网络推广app是做什么工作