会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
January01
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
2021年2月16日
多线程与高并发(五)--ThreadLocal、强软弱虚引用
摘要: ThreadLocal ThreadLocal 适用于每个线程需要自己独立的实例且该实例需要在多个方法中被使用,也即变量在线程间隔离而在方法或类间共享的场景。 ThreadLocal的set方法源码 /** * Sets the current thread's copy of this threa
阅读全文
posted @ 2021-02-16 16:27 January01
阅读(79)
评论(0)
推荐(0)
2021年2月14日
多线程与高并发(四)--ReentrantLock及AQS源码
摘要: ReentrantLock源码 父子类关系:NonfairSync->Sync->AQS AQS源码 核心是volatile int state以及等待队列。 state的具体含义交给子类来定义。 ReentrantLock中state代表加解锁。 CountDownLatch中state代表需要c
阅读全文
posted @ 2021-02-14 11:24 January01
阅读(42)
评论(0)
推荐(0)
2021年2月13日
多线程与高并发(三)--基于CAS的新类型锁
摘要: ReentrantLock 可重入锁(synchronized也是可重入锁) 必须手动释放锁,使用synchronized如果遇到异常会自动释放锁,但是reentrantLock必须手动释放,因此需要在finally中进行锁的释放。 可以使用tryLock进行尝试锁定,不管锁定与否,方法都将继续进行
阅读全文
posted @ 2021-02-13 16:20 January01
阅读(59)
评论(0)
推荐(0)
多线程与高并发(二)--synchronized,volatile,CAS
摘要: synchronized底层 JDK早期的实现是重量级锁(向操作系统申请锁)。 Hotspot实现(锁升级) 首先在锁的markword上记录第一个访问的线程ID,并没有上锁(偏向锁)。 如果有线程争用,升级为自旋锁。 默认旋10次之后升级为重量级锁,未获得锁的线程进入等待队列。 可参考http:/
阅读全文
posted @ 2021-02-13 09:45 January01
阅读(49)
评论(0)
推荐(0)
2021年2月3日
多线程与高并发(一)--线程的概念、锁
摘要: 线程的历史 线程的历史是异步对于CPU性能压榨的历史。 单进程人工切换 纸带机 多进程批处理 多个任务批量执行 多进程并行处理 把程序写在不同的内存位置上来回切换 多线程 一个程序内部不同任务的来回切换 selector epoll 纤程/协程 绿色线程,用户管理的(不是OS管理的)线程 什么是进程
阅读全文
posted @ 2021-02-03 21:31 January01
阅读(21)
评论(0)
推荐(0)
上一页
1
2
公告