![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java高级开发工程师学习之路
文章平均质量分 79
LemonSnm
心中有梦,生活无暇
展开
-
Nginx负载均衡
Nginx负载均衡原创 2022-06-22 00:42:56 · 1070 阅读 · 1 评论 -
分布式消息中间件设计
分布式消息中间件设计原创 2022-06-16 23:30:21 · 1467 阅读 · 0 评论 -
java锁相关
自旋锁:为了不放弃CPU执行事件,循环的使用ACS技术对数据尝试进行更新,直至成功。悲观锁:假定会发生并发冲突,同步所有对数据的相关操作,从读数据就开始上锁。乐观锁:假定没有冲突,在修改数据时如果发现数据和之前获取的不一致,则读最新数据,修改为最新后重新修改数据。独享锁(写):给资源加上写锁,线程可以修改资源,其他线程不能再加锁。(单个线程写)共享锁(读):给资源加上读锁后只能读不能改,其他线程也只能加读锁,不能加写锁;(多读)。可重入锁、不可重入锁:线程拿到一把锁之后,可以自由进入同.原创 2022-03-11 13:59:38 · 503 阅读 · 0 评论 -
线程安全-原子操作
1、原创 2022-01-05 16:34:00 · 396 阅读 · 0 评论 -
java基础-线程池应用及实现原理
1、线程池原理1.1、为什么要用线程池线程是不是越多越好?①线程在java中是一个对象,更是操作系统的资源,线程的创建、销毁需要时间。如果创建时间+销毁时间>执行任务的时间。就很不划算。②java对象占用堆内存,操作系统线程占用系统内存,根据jvm规范,一个线程默认最大栈大小1M,这个栈空间是需要从系统内存中分配的。线程过多,会消耗很多的内存。③操作系统需要频繁切换线程上下文(大家都想被运行),影响性能。线程池的推出,就是为了方便的控制线程的数量。2、线程池原理-概念原创 2022-01-04 16:45:43 · 332 阅读 · 0 评论 -
java基础-线程封闭
封闭对应的是开放,所谓线程开放就是类似共享数据、共享变量这些概念。多线程访问共享可变数据时,涉及到线程间数据同步问题。并不是所有时候,都要用到共享数据,所以线程封闭的概念就提出来了。线程封闭的概念数据都封闭在各自的线程之中,就不需要同步了。这种通过将数据封闭在线程中而避免使用同步的技术称为线程封闭。线程封闭的具体体现:ThreadLocal、局部变量。ThreadLocalThreadLocal是java里一种特殊的变量。它是一个线程级别变量,每个线程都有一个Thre..原创 2021-12-31 11:54:31 · 194 阅读 · 0 评论 -
java基础-线程通信
1、通信的方式:要想实现多个线程之间的协同,如:线程的执行顺序、获取某个线程的执行结果等。涉及到线程之间的通信,分为下面四类:①文件共享②网络共享③共享变量④JDK提供的线程协调API:suspend/resume、wait/notify、park/unpark1.1文件共享线程1写数据到文件里,线程2读取文件中的数据内容,实现数据的交换代码示例:import java.nio.file.Files;import java.nio.file.Pat..原创 2021-12-30 18:20:00 · 1304 阅读 · 0 评论 -
java基础-内存屏障和CPU缓存
1、CPU性能优化-缓存为了提高程序的运行性能,现代CPU在很多方面对程序进行了优化。例如,高速缓存。尽可能的避免处理器访问主内存的时间开销,处理器大多会利用缓存来提高性能。访问速度:cup处理器的缓存>内存>硬盘2、CPU的三级缓存L1Cache(一级缓存)是CPU第一级高级缓存,分为数据缓存和指令缓存。一般服务器CPU的L1缓存容量通常在32-4096KB.L2由于L1级高速缓存的容量限制,为了再次提高CPU的运算速度,在CPU外部放置一高速存储器,即二级缓存。.原创 2021-12-29 16:27:04 · 537 阅读 · 0 评论 -
java基础—线程中止
不正确的线程终止-StopStop:终止线程。并且清除监控器锁信息,但是可能导致线程安全问题,JDK不建议用。Destroy:JDK并未实现该方法。原创 2021-12-28 11:50:16 · 541 阅读 · 0 评论 -
java基础-线程状态
目录1、线程的六种状态定义:2、线程的六种状态之间的切换流程图:1、线程的六种状态定义①New(新建状态):尚未启动的线程的线程状态。(通俗的说就是我们写了一个线程,还未调用start方法去启动这个线程)②Runnable(可运行状态):可运行线程的线程状态,等待CUP调度。(通俗讲就是,线程调用了start方法之后进入该状态)。Runnable状态分两种:1、CPU正在执行这个线程;2、CPU随时可以调度执行该线程的状态③Blocked(阻...原创 2021-12-24 16:46:15 · 783 阅读 · 0 评论 -
java基础-java运行原理
Class文件内容:class文件包含JAVA程序执行的字节码,数据按照格式紧凑排列在class文件中的二进制流,中间没有任何分割符;文件开头有一个0xcafebabe(16进制)特殊的标志上图展示16进制的class文件内容这个文件有着复杂的格式,专门给JVM读取里面的内容,人阅读需要借助工具查看。内容包含:版本、访问标志、常量池、当前类、超级类、接口、字段、方法、属性。JVM运行时数据区:线程独占:每个线程都会有它的独立空间,随线程生命周期而创建和销毁。...原创 2021-12-24 01:49:30 · 994 阅读 · 0 评论 -
java高级工程师学习之路 -目录
1、高性能编程2、中间件3、容器化技术4、分布式系统5、后端项目实战6、商业化7、项目分享1、高性能编程2、中间件3、容器化技术4、分布式系统5、后端项目实战6、商业化7、项目分享...原创 2021-12-22 22:25:56 · 551 阅读 · 1 评论