- 博客(4)
- 收藏
- 关注
原创 读深入理解JAVA虚拟机-JAVA与线程
线程的实现 先清楚一个基本概念,线程是比进程更轻量级的调度执行单位(线程是CPU调度的基本单位)。 当下主流操作系统都提供了线程实现,JAVA语言提供了在不同硬件和操作系统平台下对线程操作的统一处理 一般实现线程主要有三种方式:使用内核线程实现,使用用户线程实现和使用用户线程加轻量级进程混合实现 使用内核线程实现: 内核线程(Kernel-Level Thread, KLT)是由操作系统内核支持的线程,内核通过操纵调度器对线程进行调度,并负责将线程的任务映射到CPU上。 另外程序一般不会直接去使用内核
2020-06-19 22:43:35 152
原创 读深入理解JAVA虚拟机-volatile特殊规则
volatile关键字是JVM提供最轻量级的同步机制!!! volatile关键字具备两种特性: 保证变量对所有线程的可见性 禁止指令重排序优化 千万注意:因为java中的运算不具备原子性,不能保证线程安全,不能保证线程安全。 可见性 当一个线程修改了变量的值,新值对于其他线程是可以立即得知的。 在各个线程的工作内存中,volatile变量也可以存在不一致的情况,但由于每次使用变量前都要先从主内存刷新,JVM的执行引擎看不到不一致的情况,因此可以认为不存在一致性问题。 一般来说,在以下两条规则.
2020-06-04 23:29:16 119
原创 读深入理解JAVA虚拟机-JAVA内存模型与线程
以几个问题的方式,进入学习: Q:为什么要用多线程? A:1.随着硬件的快速发展,计算机的运算能力越来越强大 2.计算机的运算速度与它的存储和通信子系统速度差距太大,大量的时间花费在磁盘I/O、网络通信和数据库访问上。 因此必须使用一些手段去把处理器的运算能力“压榨”出来,同时处理多项任务就是最有效的手段了 Q:除了“同时处理多个任务”,还可以如何提高处理器的效率(毕竟过于频繁切换任务也是很消耗资源的)? A:引入“高速缓存”来作为内存与处理器之间的缓冲:将需要计算的数据先复制到缓存中,让运算快速完成,运算
2020-06-04 00:13:07 109
原创 SpringBoot项目快速打包部署
开发springboot项目后,可以使用maven插件直接打包成jar或war包,直接发布使用 在application.properties中编辑端口,默认8080 配置maven文件,依赖都是 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" ...
2019-12-03 23:52:27 357
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人