随笔分类 - java源码和线程学习
摘要:pom.xml <!--druid 配置文件数据库密码加密 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.11</vers
阅读全文
摘要:spring.profiles.active: @profiles.active@ pom.xml <profiles> <profile> <!-- 开发环境 --> <id>dev</id> <properties> <profiles.active>dev</profiles.active>
阅读全文
摘要:下载链接 链接:https://pan.baidu.com/s/1YBRYbIK9Y5i0Vgr5vBSb8w 提取码:p3kr 文件解压后放到指定目录 D:\Program Files\maven\apache-maven-3.8.4 配置环境变量 MAVEN_HOME = D:\Program
阅读全文
摘要:反射 Class类的获取三种 //第一种获取class对象 ReflectTarget reflectTarget = new ReflectTarget(); Class aClass1 = reflectTarget.getClass();//第二种方式 Class aClass2 = Refl
阅读全文
摘要:@Slf4j public class ClassUtil { public static final String FILE_PROTOCOL = "file"; /** * * @param packageName */ public static Set<Class<?>> extractPa
阅读全文
摘要:BIO(阻塞IO) 完成当前连接后才能处理下一个连接 public class BIOClient { private static Charset charset = Charset.forName("UTF-8"); public static void main(String[] args)
阅读全文
摘要:fork/join使用 ForkJoinPool是ExecultorService接口的实现,它专为可以递归分解成小块的工作而设计 fork/join框架将任务分配给线程池中的工作线程,充分利用多处理器的优势,提高程序性能。 使用fork/join框架的第一步是编写一部分工作的代码。类似的伪代码如下
阅读全文
摘要:同步锁本质 同步的方式:独享锁 - 单个队列窗口,共享锁 - 多个队列窗口 抢锁的方式:插队抢(不公平锁)、先来后到的抢锁(公平锁) 没抢到锁的方式:快速尝试多次(CAS自选锁)、阻塞等待 唤醒阻塞线程的方式(叫号器):全部通知、通知下一个 //自己实现(独享锁) public class Devo
阅读全文
摘要:JITWatch顾名思义是HotSpot JIT编译器的日志分析器和可视化工具 github地址:https://github.com/AdoptOpenJDK/jitwatch 下载工具 在目录下,打开控制台 启动代码:mvn clean compile exec:java 打开后配置源码路径和c
阅读全文
摘要:线程锁 自旋锁:为了不放弃CPU执行事件,循环的使用CAS技术对数据尝试进行更新,直到成功。 悲观锁:假定会发生并发冲突,同步所有对数据的相关操作,从数据就开始上锁。 乐观锁:假定没有冲突,在修改数据时如果数据发现和之前获取的不一致,则读最新数据,修改后重新修改。 独享锁(写):给资源加上写锁,线程
阅读全文
摘要:原子性指的是一个的操作或者多次操作,要么所有的操作全部都得到执行并且不会收到任何因素的干扰而中断,要么所有的操作都执行,要么都不执行。 synchronized 可以保证代码片段的原子性。 synchronized相比于volatile在保证可见性的同时,也保证了原子性 问题描述 2个线程对变量i进
阅读全文
摘要:java编程语言的语义允许编译器和微处理器执行优化 实例的代码 public class VisibilityDemo2 { // 状态标识 (不用缓存) private boolean flag = true; public static void main(String[] args) thro
阅读全文
摘要:前言 线程中会出现的很多问题: 所见非所得 无法肉眼去检测程序的准确性 不同平台会有不同的表现 错误很难重现 正因为这些问题,学习多线程会有比较打的困难。 内存模型来解决不同线程之间对同一个变量的读写同步问题 目录 线程状态 线程终止(stop、interrupt、标志位) 线程协调(wait/no
阅读全文