
Java多线程
大烁爱吃肉
作为知识管理和分析的仓库,涉及工作与生活中的知识、感受和创意。
发布文章如下几类:1.把零碎的知识整理起来,做成一个完整的教学篇。2.遇到问题时的解决办法。3.自己对于架构、算法、逻辑的设计创新。4.社会时事或生活中遇到的事物的感悟,或者建模去分析和解决问题。5.IT从业人的身心健康建议,养生与健身。
展开
-
ThreadLocal
ThreadLocal并不是一个Thread,而是一个Thread的一个局部变量。当使用ThreadLocal维护变量的时候,ThreadLocal为每个使用该变量的线程提供独立的线程副本,所以每一个线程都可以独立的维护自己的副本,而不会影响到其他线程的副本。这种变量在线程的生命周期内有效,减少同一个线程内多个函数或者组件之间传递变量的复杂度。 基本实现思路:在ThreadLocal类中存在一个...原创 2018-10-18 22:36:20 · 308 阅读 · 0 评论 -
lock线程锁
Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。Lock锁可以显示的获取锁对象和释放锁,而Synchorized则是隐式的。不使用块结构锁就失去了使用 synchronized 方法和语句时会出现的锁自动释放功能。Lock 接口的实现允许锁在不同的作用范围内获取和释放,并允许以任何顺序获取和释放多个锁。 Lock的特性: 非阻塞地获取锁 如果这一时刻锁没有...原创 2018-10-08 13:35:24 · 507 阅读 · 0 评论 -
队列同步器 AQS
队列同步器AbstractQueuedSynchronizer,是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的先进先出队列来完成资源获取线程的排队工作。 我们使用锁同步共享变量的时候,我们首先应该要知道这个共享变量的状态(是否已经被其他线程锁住等),这也是这个int成员变量的作用。一些线程无法获取到共享资源等待获取锁而进入一个容器中进行保存,而这容器就是...原创 2018-10-09 10:51:37 · 350 阅读 · 0 评论