如何解决内存分配时的多线程并发竞争问题?
1 个回答
不要在赚钱的路上把健康丢了,要在健康的路上顺便把钱赚了。美啦美啦美啦内存分配不是一个线程安全的操作,在多个线程进行内存分配是,可能会存在数据不同步的问题。所以有两种方法解决: ### 添加CAS锁 对内存分配的操作进行同步处理,添加CAS锁,配上失败重试的方式来保证原子性。(默认使用这种方式)。 ### 预先给各线程分配TLAB 预先在Java堆中给各个线程分配一块TLAB(本地线程缓冲区)内存,每个线程先在各自的缓冲区中分配内存,使用完了再通过第一种添加CAS锁的方式来分配内存。(是否启动取决于-XX:+/-UseTLAB参数)。发布于 2022-02-23 09:23 •IP属地 湖南举报评论收藏
公众号进入网站体验更佳

