- 博客(2)
- 收藏
- 关注
原创 java虚拟机
JVM被分为3个主要的子系统,类加载器子系统、运行时数据区、执行引擎。 Java内存区域 运行时数据区: (线程隔离)栈、PC、本地方法栈; (线程共享)方法区、堆 PC:线程私有,用于记录指向当前线程执行到的指令的地址(虚拟机字节码地址),分支、循环、跳转、异常处理、线程恢复等都依赖PC。 栈:栈帧(Stack Frame),描述Java方法执行的内存模型,每个方法执行时都会创建一个栈帧,用于存储 局部变量、操作数栈、动态链接、方法出口等信息,每一个方法从调用到结束,都对于一个栈帧从入栈到出栈的过程。——
2020-08-23 16:41:41
102
原创 记一次项目中CountDownLatch的坑
项目背景 1、Android项目; 2、依赖httpclient请求中的异步返回数据; 2、countDownLatch用来构造一个同步场景,返回httpclient请求的response数据,await超时时间10s; 3、线程池数量:4; 问题现象 在网络比较慢的场景下,多次在前端触发该业务流程,大概率复现每一次的click事件触发的线程countDownLatch 10s超时; 关键词 多线程、countDownLatch、线程池耗尽、超时 定位过程 通过增加日志可发现,httpclient的接口耗时
2020-08-23 01:04:01
1754
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人