首页
彻底理解ThreadLocal
关于网站
数据结构
数组的遍历(Lambda)
撰写于
2018-09-09
浏览:953 次 分类:
数据结构
在jdk1.8中,数组的遍历,可以使用lambda的形式,但是要注意要用包装类,而不是基本类型import java.util.Arrays; public class ArrayDemo { public static void main(String[] args) { Integer array1[...]
disruptor研究
高性能队列:Disruptor(2)
撰写于
2018-09-09
浏览:42065 次 分类:
disruptor研究
ArrayBlockingQueue的问题ArrayBlockingQueue在实际使用过程中,会因为加锁和伪共享等出现严重的性能问题,我们下面来分析一下。加锁现实编程过程中,加锁通常会严重地影响性能。线程会因为竞争不到锁而被挂起,等锁被释放的时候,线程又会被恢复,这个过程中存在着很大的开销,并且通常会有较长时间的中断,因为当一个线程正在等待锁时,[...]
disruptor研究
高性能队列:Disruptor(1)
撰写于
2018-09-09
浏览:449 次 分类:
disruptor研究
背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了[...]
Java8基础知识
lambda实战
撰写于
2018-09-07
浏览:296 次 分类:
Java8基础知识
1 线程public class Test { public static void main(String[] args) { // Java8之前: new Thread(new Runnable() { public void run() { [...]
多线程与并发
,
一针见血20点
多线程与并发研究的本质
撰写于
2018-09-07
浏览:2134 次 分类:
多线程与并发
,
一针见血20点
应用程序这个词包括两个类别:应用和程序。应用面向的对象是人,程序面向的对象是CPU。应用=加班+框架,程序=数据结构+算法多线程与并发研究的本质就是在研究程序。
多线程与并发
,
一针见血20点
什么叫内存可见性?什么叫寄存器可见性?
撰写于
2018-09-07
浏览:716 次 分类:
多线程与并发
,
一针见血20点
数据在哪里存在呢?只在内存吗?不是的。数据在内存中存在,但是当用的时候会加载到CPU的寄存器里面。内存和寄存器是两个地方,从而出现了新的名词:内存可见性和寄存器可见性。为什么叫内存可见性呢?感觉很奇怪的名字。其实,明白以下道理就不奇怪了:数据的流动过程是:内存->寄存器->计算器很多时候,数据从内存地址读取到寄存器里面,后面的计算过程中[...]
一针见血20点
viotile离我们很近,很亲切,不该陌生
撰写于
2018-09-07
浏览:805 次 分类:
一针见血20点
synchronized代码块儿里面的变量都实现了内存可见性。内存可见性的底层是CPU的指令实现的。viotile修饰的是变量,它的作用也是实现内存可见性,底层用的用的同一个CPU指令。可以这样理解:synchronized里面的变量都是viotile修饰的。我们都用过synchronized,但是用viotile机会很少,其实换个角度想想,syn[...]
多线程与并发
ThreadLocal类系列(1)
撰写于
2018-09-06
浏览:2731 次 分类:
多线程与并发
关于ThreadLocalThreadLocal类并不java并发包里面的一个类,而是java.lang包里面的一个使用频次并不是非常高的一个类,尽量它不在并发包里面,但它的设计用途却可以用来规避一些同步问题:其提供了一个线程副本的成员变量,从而在一些情况下可以巧妙避开并发问题。我们知道在多线程情况下对共享变量的修改,如果不采用任何同步策略,那么结[...]
多线程与并发
Executor框架介绍
撰写于
2018-09-06
浏览:285 次 分类:
多线程与并发
Executor:一个接口,其定义了一个接收Runnable对象的方法executor,其方法签名为executor(Runnable command),ExecutorService:是一个比Executor使用更广泛的子类接口,其提供了生命周期管理的方法,以及可跟踪一个或多个异步任务执行状况返回Future的方法AbstractExecutor[...]
多线程与并发
ThreadLocalMap里Entry为何声明为WeakReference?
撰写于
2018-09-06
浏览:232 次 分类:
多线程与并发
Java里,每个线程都有自己的ThreadLocalMap,里边存着自己私有的对象。Map的Entry里,key为ThreadLocal对象,value即为私有对象T。在spring MVC中,常用ThreadLocal保存当前登陆用户信息,这样线程在任意地方都可以取到用户信息了。public class UserContext { pri[...]
1
2
3
4
...
6
最新文章
ThreadLocal底层原理介绍
ThreadLocal的原理与内存泄漏分享
ThreadLocal的使用场景:Web容器、Spring容器、日志打印
一针见血理解ThreadLocal
本站史上最全的Java线程池的系列介绍(2):ExecutorService 接口简介
本站史上最全的Java线程池的系列介绍(1):Executor接口的两条主线
深入理解Java PriorityQueue
Java Stream博文精华
Lambda表达式和Java集合框架
红黑树的一些特性
热门文章
Java内存模型简介及其避免入坑提示
Callable和Future简述
高性能队列:Disruptor(2)
synchronized的两大不足
Semaphore用法介绍(一)
多线程面试100题
ThreadLocal类系列(1)
Java多线程和CPU核数
分类
Java8基础知识
多线程与并发
一针见血20点
disruptor研究
多线程高并发实战项目
数据结构
面试集锦
彻底理解ThreadLocal
最新评论
归档
October 2019
August 2019
July 2019
September 2018
August 2018
July 2018
June 2018
May 2018
March 2018
友情链接
MyBatis中文官网