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

建设网站实训报告建站seo推广

建设网站实训报告,建站seo推广,网站建设分为几个时期,网页版梦幻西游红拂女乐观锁和悲观锁是在并发编程中经常用到的两种锁机制。悲观锁是指在访问共享资源之前,会先加锁,以防止其他线程修改该资源,从而保证数据的一致性和完整性。在使用悲观锁时,如果一个线程已经占用了该资源,那么其他线程只…

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

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

相关文章:

  • 西宁网站建设官网成人用品哪里进货好
  • 网网站设计网广州做seo整站优化公司
  • 美国旅游网站排名抖音搜索优化
  • 深圳企业网站建设公司百度官网平台
  • wordpress斜杠自动成-刷移动关键词优化
  • 做网站这个工作怎么样深圳百度seo优化
  • 杨凌做网站微信营销神器
  • 网站开发 方案百度指数官网入口
  • 武汉商城网站建设百度帐号登录
  • 怎么建立免费个人网站互联网营销师
  • 深圳国内设计网站新手怎么做网络推广
  • 上海免费网站建设模板推荐抖音搜索seo排名优化
  • 郴州网络科技有限公司珠海网站建设优化
  • 电子商务网站的建设步骤有谷歌seo是什么
  • 七牛做网站bing搜索引擎国内版
  • 南京做网站具体需要多少钱一起来看在线观看免费
  • 凡科网做网站专业技能培训机构
  • 湛江网站建设推广秦皇岛seo排名
  • 网站开发计划书免费二级域名注册网站有哪些
  • 国家建设部网站站长之家seo一点询
  • 做海报图片去哪个网站找 知乎房管局备案查询网站
  • 做网站一个月赚多少钱电子商务网站推广策略
  • 怎么查询网站的外链百度网址大全官方下载
  • wordpress伪静态 404杭州网站建设 seo
  • 深圳网站设计师其他搜索引擎
  • 网站模板打包下载日本比分算1:1
  • 南昌网站建设58seo 优化教程
  • 企业手机网站建设流程seo平台
  • 国产手机做系统下载网站上海百度seo优化
  • 哪个网站做新中式免费建立网站