随笔分类 -  JAVA

摘要:class文件结构 MagicNumber:文件类型 Minor Version:小版本标识 Major Version:大版本号 constant_pool_count:常量池数量 constant_poo:常量池具体实现 access_flags:class文件修饰符 this_class:当前 阅读全文
posted @ 2020-10-30 22:53 R.困兽 阅读(74) 评论(0) 推荐(0)
摘要:Executor 一个接口,其定义了一个接收Runnable对象的方法execute ExecutorService 是一个比Executor使用更广泛的子类接口,其提供了生命周期管理的方法,submit方法返回一个Future对象,并且可以传入Callable对象获取线程返回值 Callable 阅读全文
posted @ 2020-10-29 00:11 R.困兽 阅读(76) 评论(0) 推荐(0)
摘要:LongAdder 分段锁实现,线程数越多越有优势 package com.liyuanchen.juc; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicLong 阅读全文
posted @ 2020-10-24 18:04 R.困兽 阅读(116) 评论(0) 推荐(0)
摘要:volatile 保证线程可见性 禁止指令重排序 DCL单例是否需要加volatile package com.liyuanchen.designPattern; /** * 双重检查线程安全单例模式需要加上volatile禁止指令重排序才能使对象中的成员变量值绝对正确 */ public clas 阅读全文
posted @ 2020-10-21 21:50 R.困兽 阅读(85) 评论(0) 推荐(0)
摘要:创建线程的方式 继承Thread类 实现Runnable接口 使用Lambda表达式(第二种的变形) 启动线程的三种方式 Thread Runnable Executors(线程池) 线程中的方法 Thread.yield():让出cpu,让线程回到就绪状态。 join():在线程执行过程中加入另外 阅读全文
posted @ 2020-10-21 14:16 R.困兽 阅读(96) 评论(0) 推荐(0)
摘要:为了避免多线程更新的变量或对象处于同一缓存行而导致的伪共享问题,使用@Contended注解可大幅提升执行效率。 package com.chen.allen.learn; import sun.misc.Contended; public class ContendedTest { // @Con 阅读全文
posted @ 2020-10-20 20:00 R.困兽 阅读(652) 评论(0) 推荐(0)