明天你会感谢今天奋力拼搏的你。ヾ(o◕∀◕)ノヾ
首先对锁的各种类型做个介绍: 独占锁:同一时间,一把锁只能被一个线程获取; 共享锁:同一时间,一把锁可以被多个线程获取。 公平锁:按照申请锁的时间先后,进行锁的再分配工作,这种锁往往性能稍差,因为要保
在此先抛出结果:Java中i++不是原子操作,存在竞态条件,线程不安全。 这是为何? 在回答这个问题之前,先了解一个指令:javap -v -p Counter.class javap是JDK自带的反
一、原子性 原子操作:原则操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分(不可中断性)。 将整个操作视作一个整体,资源在该次操作中保持一致,这是原
一、线程池 线程不仅是Java中的一个对象,每个线程都有自己的工作内存。 线程创建、销毁需要时间,消耗性能。 线程过多,会占用很多内存。 操作系统频繁切换线程上下文会影响性能。 创建时间+销毁事件&g
一、线程和线程组 1.1、线程状态 Java中6个状态定义:java.lang.Thread.State New:尚未启动的线程的线程状态。 Runnable:可运行线程的线程状态,等待CPU调度。
初学者可以先不去关注CPU、内存、JVM部分。可以先看多线程系列的其他文章,知其然,然后再去知其所以然。 一、CPU缓存和内存相关概念介绍(了解) 1.1、多级缓存 因为电脑硬件中遇到的并发问题和JV
Java程序运行原理 Java编译器(前端编译器,javac就是其中一种)把Java源代码编译成Java虚拟机识别的字节码class文件。 Java虚拟机就相当于一个字节码的执行引擎,Java虚拟机有
一、手动安装 1.1、更新Ubuntu软件包 更新本地软件包列表:sudo apt update 更新系统已安装软件包:sudo apt upgrade 1.2、添加Docker依赖库 安装依赖,用于
两种框架自己都用过一段时间,现在想总结一下各自适用的场景,部分比较取自群友分享 框架简介 Spring Data JPA是Spring Data的子模块。使用Spring Data,使得基于“repo
准备把知道的一些Java底层知识进行整理汇总,以便脑子瓦特的时候看看。 此文想说的内容有:Java虚拟机的结构、JIT即时编译、Java虚拟机中对锁的支持。 一、基本介绍 Java编译器(前端编译器,