上一页 1 2 3 4 5 6 7 8 9 ··· 21 下一页

2020年6月9日

摘要: 2.1 Java NIO 三件套 在 NIO 中有几个核心对象需要掌握:缓冲区(Buffer)、选择器(Selector)、通道(Channel)。 2.1.1 缓冲区 Buffer 1.Buffer 操作基本 API 缓冲区实际上是一个容器对象,更直接的说,其实就是一个数组,在 NIO 库中,所有 阅读全文

posted @ 2020-06-09 22:06 FLGB 阅读(656) 评论(0) 推荐(0) 编辑


2020年6月8日

摘要: Java IO 演进之路 1.1 必须明白的几个概念 1.1.1 阻塞(Block)和非阻塞(Non-Block) 阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候。 阻塞:往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否则一直等待在那里。 非阻塞:当 阅读全文

posted @ 2020-06-08 00:45 FLGB 阅读(267) 评论(0) 推荐(0) 编辑


2020年6月7日

摘要: 什么是线程池 在 Java 中,如果每个请求到达就创建一个新线程,创建和销毁线程花费的时间和消耗的系统 资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。 如果在一个 Jvm 里创建太多的线程,可能会使系统由于过度消耗内存或“切换过度”而导致系统资源不足 为了解决这个问题,就有了线 阅读全文

posted @ 2020-06-07 22:55 FLGB 阅读(749) 评论(0) 推荐(0) 编辑

摘要: 我相信大家都有使用过分布式消息队列,比如 ActiveMQ、kafka、RabbitMQ 等等,消息队列的是有可以使得程序之 间实现解耦,提升程序响应的效率。如果我们把多线程环境比作是分布式的话,那么线程与线程之间是不是也可以使用这种消息队列的方式进行数据通 信和解耦呢? 阻塞队列的使用案例 注册成 阅读全文

posted @ 2020-06-07 22:30 FLGB 阅读(645) 评论(0) 推荐(0) 编辑


2020年6月1日

摘要: Condition 在前面学习 synchronized 的时候,有讲到 wait/notify 的基本使用,结合 synchronized 可以实现对线程的通信。 那么这个时候我就在思考了,既然 J.U.C 里面提供了锁的实现机制,那 J.U.C 里面有没有提供类似的线程通信的工具呢? 于是找阿找 阅读全文

posted @ 2020-06-01 00:42 FLGB 阅读(721) 评论(0) 推荐(0) 编辑


2020年5月24日

摘要: J.U.C 简介 Java.util.concurrent 是在并发编程中比较常用的工具类,里面包含很多用来在并发 场景中使用的组件。比如线程池、阻塞队列、计时器、同步器、并发集合等等。并 发包的作者是大名鼎鼎的 Doug Lea。我们在接下来的课程中,回去剖析一些经典 的比较常用的组件的设计思想 阅读全文

posted @ 2020-05-24 17:53 FLGB 阅读(868) 评论(0) 推荐(0) 编辑


2020年5月23日

摘要: 一、Volatile 一段代码引发的思考,下面这段代码,演示了一个使用 volatile 以及没使用volatile 这个关键字,对于变量更新的影响 public class VolatileDemo { public volatile static boolean stop = false; pu 阅读全文

posted @ 2020-05-23 17:39 FLGB 阅读(501) 评论(0) 推荐(0) 编辑

摘要: 一、现象 换成Tomcat8后出现cookie报错 二、分析 经异常去查看源码发现,Tomcat8对cookie校验规则改变,更为严格的校验了cookieHeader不允许有, 日志中的[XXXXX,XXXX]被当做异常处理。 三、解决方案 1.该异常不影响系统运行,可以注意打印cookie的格式 阅读全文

posted @ 2020-05-23 16:08 FLGB 阅读(421) 评论(0) 推荐(0) 编辑

摘要: 一、现象 对接第三方商户,压测该接口,发现tps刚上来就出现响应时间骤然上升,性能严重与预测不符。 二、分析 本地我们走一套公共报文封装出去,考虑到其他接口正常,考虑应该是第三方商户接口的问题。 经沟通排查,初步发现原因。第三方商户报文组装、拆解存在大量字段反射,性能开销大 三、解决方案 重写代码组 阅读全文

posted @ 2020-05-23 16:01 FLGB 阅读(301) 评论(0) 推荐(0) 编辑

摘要: 一、现象 当上传附件时,系统反复出现宕机问题(内存溢出)。 二、分析 dump线程日志和GC日志,发现JVM启动参数未设置,初始内存较小,当附件上传时,附件较大,内存剧增,来不及扩容就OOM了。 三、解决方法 设置初始JVM启动参数(生产上应该先考虑项目JVM初始参数设置值,不是等到出问题了再跑去解 阅读全文

posted @ 2020-05-23 15:53 FLGB 阅读(211) 评论(0) 推荐(0) 编辑


上一页 1 2 3 4 5 6 7 8 9 ··· 21 下一页

Copyright © 2024 FLGB
Powered by .NET 8.0 on Kubernetes