在本文开篇之前,先介绍几个概念: 内存可见性:指的是线程之间的可见性,当一个线程修改了共享变量时,另一个线程可以读取到这个修改后的值。 重排序:为优化程序性能,对原有的指令执...
在本文开篇之前,先介绍几个概念: 内存可见性:指的是线程之间的可见性,当一个线程修改了共享变量时,另一个线程可以读取到这个修改后的值。 重排序:为优化程序性能,对原有的指令执...
前言 Synchronized原理是面试中的一个难点。网上的各种资料太乱了 ,概念晦涩难懂,看了不少资料、博客,花了不少时间,才整理成这篇笔记。看完对你大有帮助。 1、内存布...
类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类加载...
垃圾回收两本基础经典书籍分享:《垃圾回收的算法与实现》 链接:https://pan.baidu.com/s/16g-H9QB7-gvEJAYoclwbrA[https://...
一、问题 假设有一个线程池,核心线程数为 10,最大线程数也为 20,任务队列为 100。现在来了 100 个任务,线程池里现在有几个线程运行?正确的答案是“不一定”!因为并...
一、cas自旋原理 1、概念 CAS的全称是Compare-And-Swap,它是CPU并发原语,原语的执行必须是连续的,在执行过程中不允许被中断,也就是说CAS是一条CPU...
通常mq可以保证先到队列的消息按照顺序分发给消费者消费来保证顺序,但是一个队列有多个消费者消费的时候,那将失去这个保证,因为这些消息被多个线程并发的消费。但是有的时候消息按照...
来自公众号:IT界农民工 作为一名服务端工程师,工作中你肯定和 Redis 打过交道。Redis 为什么快,这点想必你也知道,至少为了面试也做过准备。很多人知道 Redis ...
在分布式开发中,锁是线程控制的重要途径。Java 为此提供了两种锁机制,synchronized[https://www.jianshu.com/p/c8f997e7f75c...
前言: 作为 Java 的从业者,在找工作的时候,一定会被问及关于 JVM 相关的知识。 JVM知识的掌握程度,在很多面试官眼里是候选人技术深度的一个重要评判标准。 在这里我...
线程池的执行任务有两种方法,一种是 submit、一种是 execute;这两个方法是有区别的,那么基于这个区别我们再来看看。 execute 和 submit 区别 exe...
并发编程中的3个概念1.原子性:操作中包含的步骤,要么都执行成功,要么都失败。2.可见性:一个线程修改了变量的值,其他线程能够立即看到修改的值。3.有序性:JVM处理器在执行...
BIO、NIO和AIO的区别以及Netty 简介 要分清这三个,首先要分清这两组概念。 同步(Synchronization)和异步(Asynchronous)的方式 同步和...
什么是死锁 多个线程同时竞争系统资源而产生相互等待的现象.例如在某一个计算中,有一个输入设备和一个打印设备.线程T1占用了输入设备,同时又去获取打印设备控制权.但是另一个线程...
一、Synchronized简介 作用:能够保证同一时刻最多只有一个线程执行该段代码,以达到保证并发安全效果。 地位:关键字;最基本的互斥同步手段 二、Synchronize...