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

花瓣网网站模板app拉新接单平台

花瓣网网站模板,app拉新接单平台,成都企业网站建设 四川冠辰科技,做普通网站选择什么服务器锁策略 在要实现一把锁的时候需要锁策略。 悲观锁vs乐观锁 在使用锁时,预测锁发生冲突的概率。 预测概率越高就是“悲观锁”。 预测概率越低就是“乐观锁”。 对于悲观锁来说通常会进行一些阻塞操作。 对于乐观锁来说锁冲突的概率不大,通常会进行…

锁策略

在要实现一把锁的时候需要锁策略。

悲观锁vs乐观锁

在使用锁时,预测锁发生冲突的概率。

预测概率越高就是“悲观锁”。

预测概率越低就是“乐观锁”。

对于悲观锁来说通常会进行一些阻塞操作。

对于乐观锁来说锁冲突的概率不大,通常会进行忙等/版本号。

重量级锁vs轻量级锁

重量级锁指加锁的开销比较大,等待锁的线程等待时间会比较长。

轻量级锁指加锁的开销比较小,等待锁的线程等待时间会比较短。

挂起等待锁vs自旋锁

挂起等待锁就是“悲观锁”和“重量级锁”的典型实现:

当遇到锁冲突时,就会让线程挂起等待(将线程调度出CPU,等待被CPU唤起),去干别的事等空闲时再重新调度。

自旋锁就是“乐观锁”和“轻量级锁”的典型实现:

当遇到锁冲突时,不会放弃CPU,就会通过忙等的方式,再次尝试获取锁。

公平锁和非公平锁

以先来后到的方式判断公平。

读写锁

普通的锁只有加锁和解锁,但是读写锁有加读锁,加写锁,解锁。

允许多次读锁,但是不允许写锁和读锁,写锁和写锁,会有线程安全问题。

synchronized的优化体现

1.锁升级

synchornized是“自适应”锁,在空闲时为自旋状态,忙时就是挂起等待状态,也是非公平锁,而自适应就是锁升级。

偏向锁:就是一开始对锁对象进行一个标记,如果没有其他线程来竞争就直接保持到结束,但是有其他线程竞争就加锁。

synchronized的原理就是:无锁->偏向锁->自旋锁->重量级锁。

一开始是无锁,然后进行一个标记锁,当有其他线程竞争时,就变成自旋锁,当竞争进一步加强就变成重量级锁。

2.锁消除

当在不必要加锁的时候会自动去除锁。

3.锁粗化

在一段时间频繁的对同一段代码加锁解锁,可能会被优化成一次加锁解锁。

CAS(compare and swap)

CAS对比与交换,是先进行一个比较,如果满足条件就交换,同时返回true;如果不满足就返回false。

CAS的伪代码

上述代码是通过一条cpu指令完成的,意味着上诉代码是“原子”的。

CPU的特殊指令完成了上述操作,操作系统又进行封装成API,Java又将封装了操作系统的API。

CAS的典型应用

1.实现原子类

想++这样的操作不是原子的而是通过一条一条CPU指令完成的。

而AtonicInteger的++就是原子的,相似的还有更多Atonic的方法。

2.实现自旋锁

CAS的ABA问题

通过CAS来判定,是指当前load到寄存器的值,和内存中的值是否相同,如果一致就判断没有其他线程修改,接下来的操作线程安全。

但是当内存中的值A被改成B,但是却被其他线程改成A了,此时就会出现问题了,这就是ABA问题。

但是一般情况下因为会将之给改回来,所以不会有严重的bug,但是也有特殊情况。

JUC(java.util.concurrent)中的常见类

1.collable接口

collable类似于runnable,Runnable中的是通过run方法执行任务,且返回值是void,而collable是call方法,且返回值可以自定义。

2.ReentrantLock类

ReentrantLock是一把比较传统的锁,在synchronized不成熟的时候,所用的加锁方式。

要lock和unlock。

synchronized和ReentrantLock的区别:

1.前者不需要自动解锁,后者需要调用unlock。

2.前者在申请锁失败时会死等,而后者可以通过trylock进行等待或直接放弃,如果超过等待时间就会放弃加锁。

3.synchronized是非公平锁,ReentrantLock默认是非公平锁,可以添加true转变成公平锁。

4.synchronized通过wait/notify进行随机唤醒,而ReentrantLock可以通过Condition进行更精准的唤醒。

http://www.hengruixuexiao.com/news/17822.html

相关文章:

  • wordpress免费网站国外seo标题优化的方法
  • asp网站后台管理教程百度网盘搜索引擎入口在哪
  • 连江县住房和城乡建设局网站游戏代理加盟平台
  • 池州网站制作建站网站
  • 大专公司网站建设毕业论文seo对网络推广的作用是什么?
  • 网站搭建阿里最新国际要闻
  • 海洋网络做网站不负责百度快速排名优化工具
  • 网站建设收费分几次排名优化
  • 哪有做网站 的有域名后如何建网站
  • 商务网站建设教程网络推广营销方案100例
  • 主机服务器网站 怎么做雅虎搜索引擎中文版
  • 镇江网站建设yubei021宁德市
  • 什么是规划网站百度seo算法
  • 网站设计算什么费用南京响应式网站建设
  • 珠海网站建设制作怎么收费域名
  • 个人网站服务器推荐最新seo操作
  • 郑州哪家做网站好seo外链资源
  • 网站建设代理公司免费建站的网站哪个好
  • 网站建设 电脑 手机竞价账户托管公司哪家好
  • 做网页收集素材常用的网站有哪些电商运营
  • 视频.wordpress添加ssl淘宝关键词排名优化技巧
  • 深圳哪里可以做物流网站关键词自动优化
  • 网站开发 蔬菜网 的毕业论文电脑培训班零基础网课
  • 做网站要注册公司吗柏乡seo快排优化
  • 新变更营业执照注册号查了发现之前有备案过网站了网络推广的方法和技巧
  • 南京网络推广公司介绍周口seo公司
  • 小程序代注册网络seo营销推广
  • wordpress慢吗东莞seo建站公司
  • 石家庄外贸网站建设天津的网络优化公司排名
  • 网站做打鱼游戏挣钱吗网站做seo教程