摘要: 被volatile修改的变量有2大特点 特点 可以保证 可见性 有序性 还是那张图,volatile只能保证可见性和有序性 那为什么volatile可以实现这些功能呢? 底层就是内存屏障 (面试必问) volatile的内存语义 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享 阅读全文
posted @ 2022-07-17 00:18 金融融融融果果 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 1、线程池状态: 五种状态: 1、RUNNING 状态说明:在RUNNING状态下,线程池可以接收新的任务和执行已添加的任务。线程池的初始化状态是RUNNING。换句话说,线程池被一旦被创建(比如调用Executors.newFixedThreadPool()或者使用ThreadPoolExecut 阅读全文
posted @ 2022-07-16 23:12 金融融融融果果 阅读(178) 评论(0) 推荐(0) 编辑
摘要: Future和Callable接口 Future接口(FutureTask实现类)定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。(异步:可以被叫停,可以被取消) 一句话:Future接口可以为主线程开一个分支任务,专门为主线程处 阅读全文
posted @ 2022-07-16 23:09 金融融融融果果 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 并发相关Java包 涉及到的包内容 java.util.concurrent java.util.concurrent.atomic java.util.concurrent.locks JUC包创始人 Doug Lea start线程解读 初始程序 public static void main( 阅读全文
posted @ 2022-07-16 23:06 金融融融融果果 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 1、粘包与半包 服务器代码 public class StudyServer { static final Logger log = LoggerFactory.getLogger(StudyServer.class); void start() { NioEventLoopGroup boss = 阅读全文
posted @ 2021-08-29 16:14 金融融融融果果 阅读(54) 评论(0) 推荐(0) 编辑
摘要: Future/Promise 模式 由于 Netty 中的 Handler 处理都是异步 IO 操作,结果是未知的。 Netty 继承和扩展了 JDK Future 的 API,定义了自身的 Future 系列类型,实现异步操作结果的获取和监控。 其中,最为重要的是 ChannelFuture 。 阅读全文
posted @ 2021-08-29 12:06 金融融融融果果 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 文章转自于技术人成长之路:https://mp.weixin.qq.com/s/Xl5X30dbIYKE-1lB9NuXAw Concurrent包的结构层次 在针对并发编程中,Doug Lea大师为我们提供了大量实用,高性能的工具类,针对这些代码进行研究会让我们对并发编程的掌握更加透彻也会大大提升 阅读全文
posted @ 2021-08-22 16:34 金融融融融果果 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 一、Netty中的EventLoop 1、EventLoop组件 事件循环对象 EventLoop EventLoop 本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理一个或多个 Channel 上源源不断的 io 事件 它的继承关系如下 继承自 j.u.c.Sc 阅读全文
posted @ 2021-08-12 13:27 金融融融融果果 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 对象实例化内存布局与访问定位 对象头信息里面有哪些东西? Java对象头有什么? 从对象创建的方式 和 步骤开始说 对象创建方式 new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法 Class的newInstance方法:在JDK9里面被标记为过时的 阅读全文
posted @ 2021-05-24 16:34 金融融融融果果 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区概述及线程 前言 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载-> 验证 → 准备 → 解析 → 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区。 也就是大厨做饭,我们把大厨后面的 阅读全文
posted @ 2021-05-23 17:32 金融融融融果果 阅读(60) 评论(0) 推荐(0) 编辑