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

营销型品牌网站建设员工培训

营销型品牌网站建设,员工培训,哪个网站是专门做男人衣服的,网站数据库做好了 怎么做网页乐观锁和悲观锁是在并发编程中经常用到的两种锁机制。悲观锁是指在访问共享资源之前,会先加锁,以防止其他线程修改该资源,从而保证数据的一致性和完整性。在使用悲观锁时,如果一个线程已经占用了该资源,那么其他线程只…

乐观锁和悲观锁是在并发编程中经常用到的两种锁机制。

悲观锁是指在访问共享资源之前,会先加锁,以防止其他线程修改该资源,从而保证数据的一致性和完整性。在使用悲观锁时,如果一个线程已经占用了该资源,那么其他线程只能等待该线程释放锁之后才能访问该资源。悲观锁常见的实现方式包括 synchronized 和 ReentrantLock 等。

相反,乐观锁是在访问共享资源时不会先加锁,而是先读取该资源的版本号或者其他状态信息,然后进行操作,操作完成后再进行比较和修改。如果期间该资源被其他线程修改,则当前线程的操作会失败,需要进行重试或者抛出异常。乐观锁常见的实现方式包括基于版本号的 CAS(Compare and Swap)算法以及乐观锁注解(如@Version)等。

悲观锁会降低程序的并发性能,因为它会频繁地加锁和释放锁,而乐观锁虽然不需要加锁,但是需要在操作时进行比较和重试,所以在高并发情况下也可能出现性能问题。因此,在实际开发中需要根据具体的场景选择合适的锁机制。

以下是一个使用悲观锁和乐观锁的 Java 代码示例:

使用悲观锁的示例代码:

import java.util.concurrent.locks.ReentrantLock;public class PessimisticLockExample {private int count = 0;private ReentrantLock lock = new ReentrantLock();public void increment() {lock.lock();try {count++;} finally {lock.unlock();}}public int getCount() {lock.lock();try {return count;} finally {lock.unlock();}}
}

使用乐观锁的示例代码:

import java.util.concurrent.atomic.AtomicInteger;public class OptimisticLockExample {private AtomicInteger count = new AtomicInteger(0);public void increment() {boolean updated = false;while (!updated) {int current = count.get();updated = count.compareAndSet(current, current + 1);}}public int getCount() {return count.get();}
}

在悲观锁示例中,使用了 ReentrantLock 对象对 count 变量进行加锁和解锁,保证了线程安全。在 increment() 方法中,先对 count 进行加锁,然后将其增加 1,最后再解锁。在 getCount() 方法中,先对 count 进行加锁,然后返回其值,最后再解锁。

在乐观锁示例中,使用了 AtomicInteger 对象对 count 变量进行操作,通过 compareAndSet() 方法比较当前值是否与期望值相等,如果相等则将其更新为新值。在 increment() 方法中,通过 while 循环进行不断的比较和更新,直到成功为止。在 getCount() 方法中,直接返回 count 的值。由于 AtomicInteger 类具有原子性和可见性,所以可以保证线程安全。

http://www.hkea.cn/news/201828/

相关文章:

  • 手机做网站的步骤跨境电商有哪些平台
  • 请人做网站要多少网络事件营销
  • 网站页脚有什么作用厦门seo哪家强
  • 东莞百度提升优化优化推广网站推荐
  • 查企业网站有哪些站长统计app软件
  • 做a高清视频在线观看网站济源新站seo关键词排名推广
  • 刚做的网站怎么搜索不出来百度seo收录软件
  • 视频拍摄app站长工具seo综合查询广告
  • 新闻单位建设网站的意义武汉seo推广优化
  • 低价网站公司软文怎么写
  • 东莞市建设公共交易中心网站百度官网首页
  • 如何建立的网站能争钱优化营商环境 助推高质量发展
  • 做百度网站营销型网站建设排名
  • 网站域名被黑国际新闻最新消息战争
  • 苏州网站开发公司济南兴田德润厉害吗网络自动推广软件
  • 广药网站建设试卷株洲最新今日头条
  • 网站建设管理考核办法微信推广平台怎么做
  • 网站新闻模块代码网络推广有哪些常见的推广方法
  • 合肥大型网站如何推广普通话
  • 高端网站制作软件怎么样推广自己的店铺和产品
  • 无障碍浏览网站怎么做关键词seo排名优化推荐
  • wordpress 247seo推广系统
  • 做深圳门户网站起什么名字好泰州seo外包公司
  • 网站视频上传怎么做百度站长平台论坛
  • wordpress农业模板下载小时seo
  • 做网站语言排名2018发帖推广哪个平台好
  • 销氪crmseo入门讲解
  • 蒙阴哪有做淘宝网站的钓鱼网站制作教程
  • 网站如何做导航条下拉菜单怎么做百度网页
  • 网站开发都做什么平台推广精准客源