
网站救助计划
1.为阅读体验,本站无任何广告,也无任何盈利方法,站长一直在用爱发电,现濒临倒闭,希望有能力的同学能帮忙分担服务器成本
2.捐助10元及以上同学,可添加站长微信lurenzhang888,备注捐助,网站倒闭后可联系站长领取本站pdf内容
3.若网站能存活下来,后续将会持续更新内容
在创建对象时还需要保证线程安全,因为对象创建在虚拟机中是非常频繁的,即使仅仅修改了一个指针所指向的位置,在并发场景下也不是线程安全的,可能出现正在给对象A分配内存,指针还没来得及修改,对象B又同时使用了原来的指针来分配内存的情况。解决方案有以下两种:
- 采用CAS加上失败重试的方式保证更新操作的原子性(CAS有在Java并发编程中提到,可以看看之前的文章)
- 每个线程在Java堆中预先分配一小块内存,称为本地线程分配缓冲(TLAB),哪个线程需要分配内存就在哪个线程的TLAB上分配,只有TLAB用完或对象大于TLAB中的剩余内存时,才需要采用CAS的方案
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版