多线程
Small Fly Fly
我是渣渣
展开
-
synchronize关键字的锁升级
在java对象在堆内存中有:对象头和对象数据和对齐偏移量组成下面是无锁 升级到轻量级锁当有新的线程尝试获取 偏向锁失败(即修改id),然后在等到上个线程执行到安全点(不是立刻去修改对象的头部)轻量级锁的场景:适用于多个线程交替执行重量级锁:使用与高并发的项目,所以前面申请偏向锁轻量级所等有点多余,浪费时间,直接用重量级锁即可下面是无锁升级为重量级锁...原创 2020-07-07 00:39:34 · 382 阅读 · 0 评论 -
多线程学习一之基础知识
文档资料:链接:https://pan.baidu.com/s/16y0HQ0X_KWUj4y2axTKpQQ提取码:wten什么是并发?什么是并行?什么是进程,什么是线程线程是任务调度的底本单位线程的创建方式有几种:用线程池:创建线程的四种方式比较:线程的生命周期:stop容易死锁的原因是:锁可能没...原创 2019-09-04 20:01:00 · 133 阅读 · 0 评论 -
多线程学习二之基础知识
java内存模型:局部变量都是在栈中的,但是变量所指向的对象放在堆中方法区是:也是堆(方法区中的数据比较稳定),堆:中的数据经常需要进行垃圾回收java内存工作的示意图线程安全:就是工作内存和主内存数据不一致问题(cpu经过修改,还没有同步到内存中)ThradLocal的原理:原子类的原理:是基于cas的,...原创 2019-09-05 22:13:22 · 124 阅读 · 0 评论 -
多线程学习三之秒杀系统
定时任务:quartz的学习cron表达式:redis秒杀问题:程序流程:1:首先我们需要将数据库中的商品信息放到redis中:在商品添加到hash的同时,为每个商品创建一个队列,队列名称为:固定的前缀+商品的id,队列的大小与该商品的数量有关2:下单业务:首先判断该用户是否已经下单了该商品:我们在redis中创...原创 2019-09-09 19:06:12 · 654 阅读 · 0 评论