- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 Java多线程/并发编程学习笔记
而 Sync 除了少数几个定制化的功能之外,其他方法都是通过继承 AbstractQueuedSynchronizer 获得,下面简称。机器级的优化操作,CPU 允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理。ReentrantLock 中所有的方法都是通过调用。四、并发编程框架 Disruptor。点击标题快速索引到对应文档。二、Java 多线程进阶。一、Java多线程入门。
2023-06-20 16:31:07 71
原创 MySQL存储引擎
MySQL存储引擎一、MyISAM不支持事务,性能更好,数据占用空间小。锁级别为表级锁,并发性差。1.1 了解 MyISAM创建一个存储引擎为 MyISAM 的数据表CREATE TABLE `isam_table` ( `id` int(11) DEFAULT NULL, `create_time` VARCHAR(10) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;每张表对应会生成三个文件-rw-rw..
2021-10-20 12:14:47 112
原创 GC(Garbage Collection)垃圾收集 学习笔记
目录关于 GC 的三个问题问题一:哪些内存需要回收?问题二:什么时候回收?问题三:如何回收?垃圾收集器附:垃圾收集算法细节(面试加分)内存分配策略关于 GC 的三个问题关于 GC,先思考三件事(官方开头):问题一 —— 哪些内存需要回收? 问题二 —— 什么时候回收? 问题三 —— 如何回收? 问题一:哪些内存需要回收?当然是垃圾需要回收!!!判断是否垃圾的方式有两种:引用计数法(无法回收循环引用对象,了解即可) 对象中添加一个.
2021-10-11 01:24:09 128
原创 ThreadLocal 的使用
ThreadLocal 为每一个线程维护变量的副本,把共享数据的可见范围限制在同一个线程之内,因此 ThreadLocal 是线程安全的,每个线程都有属于自己的变量。ThreadLocal<String> tl = new ThreadLocal<>();tl.set("ping");java.lang.ThreadLocal#set 源码通过上面代码可知,每个 Thread 对象都维护了一个 threadLocals,它是 ThreadLocal 类中的静态..
2021-10-10 18:44:03 92
原创 volatile 关键字
volatile 的使用下面以一个单例模式,介绍 volatile 的使用:public final class LazyDoubleCheckSingleton { private static volatile LazyDoubleCheckSingleton instance; Socket socket; /** * 实例创建过程分 3 步: * 1.分配对象内存空间 * 2.初始化对象(执行构造器中的代码)
2021-10-10 18:23:03 84
原创 synchronized 和 ReentrantLock 详解
关于线程安全什么是线程安全?多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。线程安全要解决什么问题?在并发环境下保证读写数据的正确性。看一个案例:public class MultiThreadsError implements Runnable { private int index = 0; public stat
2021-10-10 17:53:00 443
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人