扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: Java > JVM高频面试题 > 5.创建对象时如何处理并发安全问题

在创建对象时还需要保证线程安全,因为对象创建在虚拟机中是非常频繁的,即使仅仅修改了一个指针所指向的位置,在并发场景下也不是线程安全的,可能出现正在给对象A分配内存,指针还没来得及修改,对象B又同时使用了原来的指针来分配内存的情况。解决方案有以下两种:

  • 采用CAS加上失败重试的方式保证更新操作的原子性(CAS有在Java并发编程中提到,可以看看之前的文章)
  • 每个线程在Java堆中预先分配一小块内存,称为本地线程分配缓冲(TLAB),哪个线程需要分配内存就在哪个线程的TLAB上分配,只有TLAB用完或对象大于TLAB中的剩余内存时,才需要采用CAS的方案

点击面试手册,获取本站面试手册PDF完整版