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

个人养老金/百度seo和sem的区别

个人养老金,百度seo和sem的区别,平面设计必备软件,江苏省建设厅HashMap、Hashtable、ConccurentHashMap三者的区别HashMap线程不安全,数组链表红黑树Hashtable线程安全,锁住整个对象,数组链表ConccurentHashMap线程安全,CAS同步锁,数组链表红黑树HashMap的key,value均可…

HashMap、Hashtable、ConccurentHashMap三者的区别

HashMap线程不安全,数组+链表+红黑树

Hashtable线程安全,锁住整个对象,数组+链表

ConccurentHashMap线程安全,CAS+同步锁,数组+链表+红黑树

HashMap的key,value均可为null,其他两个不行。

在JDK1.7和JDK1.8中的区别

在JDK1.8主要设计上的改进有以下几点:

1、不采用segment而采用node,锁住node来实现减小锁粒度。

2、设计了MOVED状态 当resize的中过程中 线程2还在put数据,线程2会帮助resize。

3、使用3个CAS操作来确保node的一些操作的原子性,这种方式代替了锁。

4、sizeCtl的不同值来代表不同含义,起到了控制的作用。

采用synchronized而不是ReentrantLock

1e01078197ae

image.png

重载方法只有参数类型不同,且为父子类,调用选择的时候并不是按照实例类型,而是按照引用类型,强转和经过另一个函数的过滤都会导致在选择进入哪个函数的结果发生变化

扩展:在groovy中,方法的调用是在运行时被选择。这被称为运行时调度和多方法。根据运行时参数类型选择方法。

在java中,这个是相反的,在编译时,根据定义的类型, 选择方法。

以下代码以Java代码的形式编写,可以在Java和Groovy中编译,但其行为会有所不同:

int method(String arg) {

return 1;

}

int method(Object arg) {

return 2;

}

Object o = "Object";

int result = method(o);

在java中 result的值是2,

在groovy中的值是1

java使用的是静态信息类型,o被声明为Object;然而groovy是在运行时选择,这个方法真正被调用的时候。因为o是一个String所以调运String的版本。

volatile 修饰Int 属性变量,能否保证int 属性多线程 自增现成同步呢?

顺带说下volatile关键字很重要的两个特性:

保证变量在线程间可见,对volatile变量所有的写操作都能立即反应到其他线程中,换句话说,volatile变量在各个线程中是一致的(得益于java内存模型—"先行发生原则");

2、禁止指令的重排序优化;

那么换成volatile修饰count变量后,会有什么效果呢? 试一试:

public class AtomicIntegerTest {

private static final int THREADS_CONUT = 20;

public static volatile int count = 0;

public static void increase() {

count++;

}

public static void main(String[] args) {

Thread[] threads = new Thread[THREADS_CONUT];

for (int i = 0; i < THREADS_CONUT; i++) {

threads[i] = new Thread(new Runnable() {

@Override

public void run() {

for (int i = 0; i < 1000; i++) {

increase();

}

}

});

threads[i].start();

}

while (Thread.activeCount() > 1) {

Thread.yield();

}

System.out.println(count);

}

}

结果似乎又失望了,测试结果和上面的一致,每次都是输出小于20000的数字。这又是为什么么? 上面的论据是正确的,也就是上面标红的内容,但是这个论据并不能得出"基于volatile变量的运算在并发下是安全的"这个结论,因为核心点在于java里的运算(比如自增)并不是原子性的。

http://www.lbrq.cn/news/798787.html

相关文章:

  • 个人电子邮箱怎么填写格式/seo第三方点击软件
  • 北京建网站价格/搜狗关键词排名此会zjkwlgs
  • 连云港网站关键词优化/最好的搜索引擎排名
  • 网站运作流程/怎么创建一个网址
  • 做外贸要开通哪个网站/专业seo站长工具全面查询网站
  • 国家知识产权局是干什么的/河南网站推广优化排名
  • 用来做视频连接的网站/个人网站设计毕业论文
  • 山东兴华建设集团网站/无锡网站建设优化公司
  • 建设工程资质录入是在那个网站/产品设计公司
  • 学做网站教程/创建个人网站的流程
  • 网站模板绑定域名/最新的国际新闻
  • 天津网站建设信息/微信群发软件
  • c2b做的好的网站/google官方版下载
  • 读经典做临床报名网站/网站seo在线诊断
  • 网站建设平台推广/网站快速收录软件
  • 怎么自己做优惠券网站/短视频seo系统
  • asp.net 做网站实例/阿里云建网站
  • 邛崃建设网站首页/搜索引擎优化的概念
  • 建设自己的网站怎么做/自媒体平台
  • 哪些公司网站做的好/搜索优化引擎
  • 做h5那个网站模板好/实时热搜榜
  • 瑞安网站建设公司/ue5培训机构哪家强
  • 大连高新园区住建局官网/seo综合查询国产
  • 网站动图是怎么做的/整站多关键词优化
  • 怎么做营销网站推广/5118站长网站
  • weui做购物网站的案例/长春网站优化体验
  • 网站空间地址/网站外链发布平台
  • 大连住建局官网网站/长春网站建设公司哪个好
  • 隐藏网站后台/网络营销策划书1000字
  • logo设计网站免费无水印/seo实战培训视频
  • GaussDB having 的用法
  • C++ 模板初阶
  • JP3-3-MyClub后台后端(三)
  • PyTorch 中 Tensor 统计学函数及相关概念
  • 电子电气架构 --- 汽车网络安全概述
  • VSCode Python 与 C++ 联合调试配置指南