- 博客(10)
- 资源 (4)
- 收藏
- 关注
原创 Java多线程(4)ReentrantLock详解
上一篇:Java多线程(4)线程活跃性问题ReentrantLock详解一. 什么是ReentrantLockReentrantLock称为重入锁,比内部锁synchonized拥有更强大的功能,它可中断、可定时、设置公平锁使用ReentrantLock时,一定要释放锁,一般释放放到finnal里写...
2020-10-29 22:02:44 387 1
原创 Java多线程(3) wait、notify 详解
上一篇 :Java多线程(2)synchronized详解wait、notify / notifyAll一. 对于wait()和notify()、notifyAll的理解对于wait()和notify()的理解,还是要从jdk官方文档中开始,在Object类方法中有void notify()Wakes up a single thread that is waiting on this object’s monitor.译:唤醒在此对象监视器上等待的单个线程void notifyAll
2020-10-27 11:48:22 291
原创 Java多线程(2)synchronized详解
上一篇:Java多线程(1)线程与进程synchronized详解简介可能在很多人眼里,在java中提到 锁、安全性、同步,首先想到的则是java提供的大佬(synchronized)。那么为什么在多线程下,单单靠一个关键字修饰代码块就可以实现所谓的安全性呢?可以说是对初学者而言及神奇又强大的存在。也成了大多数初学者百试不爽的良药但是在逐渐对java认知的深入,我们认识到synchronized对于jvm来说是一个重量级的锁。其笨重无比,在如今人们对速度和性能极致要求的现在,现在此时并不能满足性能上
2020-10-23 00:57:20 285 2
原创 Java多线程(1)线程与进程
多线程作为Java中很重要的一个知识点,在此还是有必要学习一下的线程与进程进程 是程序的一次动态执行过程,它需要经历从代码加载,代码执行到执行完毕的一个完整的过程,这个过程也是进程本身从产生,发展到最终消亡的过程。多进程操作系统能同时达运行多个进程(程序),由于 CPU 具备分时机制,所以每个进程都能循环获得自己的CPU 时间片。由于 CPU 执行速度非常快,使得所有程序好像是在同时运行一样,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程线程是指进程中的一个执行
2020-10-21 00:46:19 188
原创 深入理解Java虚拟机—线程安全与锁优化
上一篇:深入理解Java虚拟机——(14)线程安全与锁优化一 概述二. 线程安全《Java Concurrency In Practice》的作者Brian Gortz定义:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。这个定义比较严谨,它要求线程安全的代码必须具备一个特征:代码本身封装了所有必要的正确性保障手段,令调用者无需关心多线程的问题,
2020-10-16 01:00:17 114
原创 深入理解Java虚拟机—Java内存模型与线程
上一篇:深入理解Java虚拟机——(13)Java内存模型与线程一. 硬件的效率和一致性让计算机并发执行若干个运算任务和更充分地利用计算机处理器的效能之间看起来是因果关系,但实际上没那么简单。CPU的运算能力十分强大,但是任何任务都不太可能单单靠CPU就能够完成,比如读取内存,存储的数据,网络的请求等IO操作是很难消除的,更糟糕的是存储设备与CPU之间的运算差距过大,所以在内存和CPU之间又会加一道高速缓存介质进行提速。为了充分利用CPU的性能,通常会采取异步IO的方式进行,这样CPU可以去处理其他的
2020-10-15 23:31:12 139
原创 深入理解Java虚拟机—后端编译与优化
上一篇:深入理解Java虚拟机——(12)后端编译与优化如果我们把字节码看作是程序语言的一种中间表示形式的话,那编译器无论在何时、何种状态下把Class文件转换成与本地基础设施相关的二进制机器码,都可以视为整个编译过程的后端一. 即时编译器Java程序最初都是通过解释器执行的,当虚拟机发现某个方法执行得特别频繁时,就认定它们为热点代码,为了提高热点代码的执行速度,就会把他们编译为本地机器码,执行这些操作的就是即时编译器1. 解释器与编译器解释器与编译器配合使用的方式在虚拟机中被称为“混合模式(
2020-10-15 00:17:58 185
原创 深入理解Java虚拟机—前端编译与优化
上一篇:深入理解Java虚拟机——(11)前端编译与优化在Java技术下谈“编译期”而没有具体上下文语境的话,其实是一句很含糊的表述,因为它可能是指一个前端编译器(叫“编译器的前端”更准确一些)把.java文件转变成.class文件的过程;也可能是指Java虚拟机的即时编译器(常称JIT编译器,Just In Time Compiler)运行期把字节码转变成本地机器码的过程;还可能是指使用静态的提前编译器(常称AOT编译器,Ahead Of Time Compiler)直接把程序编译成与目标机器指令集相
2020-10-13 00:57:07 146
原创 深入理解Java虚拟机—类加载及执行子系统的案例与实战
上一篇: 深入理解Java虚拟机——(10)类加载及执行子系统的案例与实战一. 概述在Class文件格式与执行引擎这部分中,用户的程序能直接影响的内容并不太多, Class文件以何种格式存储,类型何时加载、如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为,用户程序无法对其进行改变。能通过程序进行操作的,主要是字节码生成与类加载器这两部分的功能,但仅仅在如何处理这两点上,就已经出现了许多值得欣赏和借鉴的思路,这些思路后来成为了许多常用功能和程序实现的基础二. 案例分析1.Tomca
2020-10-11 00:40:52 182
2020谷粒商城分布式基础篇课件资料.rar
2020-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人