多线程
文章平均质量分 90
葵续浅笑
争取每天都有进步!
展开
-
一窥TransmittableThreadLocal
ThreadLocal在我们平时的开发中很常见,拥有线程级别的变量共享,但是现在的项目都是跨线程的调用,如果主线程创建了另一个线程(父子线程),另一个线程还能拿到主线程的数据吗?这时候ThreadLocal就力不从心了,还好jdk提供了InheritableThreadLocal类,我们稍微讲下InheritableThreadLocal在跨线程间变量传递的原理。在Thread类里,除了threadLocals 变量,还有一个inheritableThreadLocals变量,两者类型一模一样。inher原创 2021-01-18 15:32:02 · 1029 阅读 · 1 评论 -
JAVA锁的集大成应用者--synchronized的锁优化
前言之前博客转载过美团的锁介绍文章 【基本功】不可不说的Java“锁”事–转自美团技术博客,写的非常好,但是在锁的落地中,有哪个可以囊括大部分锁的落地应用,我觉得synchronized可以是一个。下面就讲讲synchronized的锁优化。对象头我们用过synchronized的都知道,它的使用语法是用一个对象来当“钥匙”的。哪个线程有这把钥匙,哪个线程就可以自由出入synchronize...原创 2019-11-12 15:34:04 · 241 阅读 · 0 评论 -
Java 里如何实现线程间通信
正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。本文涉及到的知识点:thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBarrier, FutureTask, Callable 等。下面我从几个例子作为切入点来讲解下 Java 里转载 2017-10-08 21:11:12 · 465 阅读 · 0 评论 -
java 多线程 同步机制 总结(一)
最近《Core Java》学到同步内容 东西比较多 对于jdk很多方法需要先看懂概念 然后敲demo深入理解 相关demo已经上传到github https://github.com/lovejj1994/Thread一. 锁对象和条件对象在没有锁的情况下 多个线程对同一个对象资源操作会造成读写不一致 所以引入了锁对象和条件对象的概念ReentrantLock 就是一个原创 2016-12-25 22:10:56 · 665 阅读 · 0 评论 -
java 多线程 同步机制 总结(二)
一.volatile域和final变量volatile域和final变量 都常被理解为 “程度较轻的 synchronized”,都是为了实现代码线程的安全性,但是没有实现原子性.volatile 的正确用法: ● 对变量的写操作不依赖于当前值。 ● 该变量没有包含在具有其他变量的不变式中。final也是,如果多个线程在读写final变量,仍然需要使用同步。二.死锁如果两个线程都拿了对方需要的锁原创 2016-12-26 11:40:41 · 319 阅读 · 0 评论 -
java 多线程 中断线程interrupt 研究
今天研究多线程中的 中断线程 的概念 在java多线程中 stop()方法已经被废弃,留下了其余三个方法原型: public void interrupt(); public boolean isInterrupted(); public static boolean interrupted();字面是中断的意思 但是这并不是直接中断某线程 而是设定一个中断状态 我们取到这个状原创 2016-12-21 21:20:42 · 535 阅读 · 1 评论 -
从Java内存模型解析volatile关键字
面试里面多线程是绕不开的话题,补习多线程的时候看到一篇好文章,从Java内存模型的角度解析volatile关键字,对于多线程新手的我来说收获很多。 原文链接: http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为转载 2018-01-20 22:38:33 · 202 阅读 · 0 评论 -
AtomicInteger如何保证线程安全以及乐观锁/悲观锁的概念
最近面试被问到一个问题,AtomicInteger如何保证线程安全?我查阅了资料 发现还可以引申到 乐观锁/悲观锁的概念,觉得值得一记。众所周知,JDK提供了AtomicInteger保证对数字的操作是线程安全的,线程安全我首先想到了synchronized和Lock,但是这种方式又有一个名字,叫做互斥锁,一次只能有一个持有锁的线程进入,再加上还有不同线程争夺锁这个机制,效率比较低,所以又称原创 2018-01-20 20:31:42 · 6347 阅读 · 1 评论 -
聊聊ReentrantLock的锁设计
前言之前看过美团的一篇不可不说的Java“锁”事,对java锁的概念做了一次梳理,其实在java类中,ReentrantLock算是一个对锁概念运用的典范,看懂它的源码对锁的理解很有帮助。我也以ReentrantLock为原型,略加改动使之能在分布式环境中运行。幕后功臣AQS当我们看第一眼ReentrantLock源码,里面有一个Sync对象,它继承AbstractQueuedSynchro...原创 2019-06-18 14:35:42 · 393 阅读 · 0 评论