会员
周边
新闻
博问
闪存
赞助商
YouClaw
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
无
上一页
1
···
5
6
7
8
9
10
11
12
13
···
79
下一页
增加代码时怎么样降低风险,超时意识【重要】
摘要: 1 try catch throuable 2 避免主线程阻塞,要另起线程,用future.get超时机制 必要时放弃子线程,确保主线程不被阻塞;但应强制回收子线程的指针:内存泄漏事故(二)线程的中断不可信任【重要】强制回收
阅读全文
posted @ 2024-08-30 00:26 silyvin
阅读(26)
评论(0)
推荐(0)
intern(三)自定义intern的内存泄漏
摘要: 1 原理 object -> Double map -> Double 两条都是强引用,当object释放时,Double仍然不能释放 应当把map那条改为弱引用 2 实践 一次内存优化
阅读全文
posted @ 2024-08-30 00:19 silyvin
阅读(30)
评论(0)
推荐(0)
内存泄漏事故(四)future能否感知error
摘要: 必须new才会加载,=null不会 首先最好先证明加载不了的类确实是在futrue真正run的时候加载的,而不是在定义future的时候,因为题目是future能否感知,如果在主线程定义时加载则不准确 可以看到ExecutionException包裹了NoClassDefFoundError 关于n
阅读全文
posted @ 2024-08-17 11:56 silyvin
阅读(26)
评论(0)
推荐(0)
内存泄漏事故(三)线程的interrupted flag 的坑【重要】
摘要: 背景: 子线程中,分线程处理然后聚拢 future。get 但是在futureget的异常处理中,并未抛出异常,只是调用Thread.currentThread().interrupt(), 因此主线程要监控这个interrup旗标,从而决定是否抛出异常 1 起先 发现没什么用 2 旗标的生命周期
阅读全文
posted @ 2024-08-17 11:33 silyvin
阅读(32)
评论(0)
推荐(0)
内存泄漏事故(二)线程的中断不可信任【重要】配合volatile强制回收子线程成员变量
摘要: 1 Map<k, list> not good: map.remove(k) 如果这时有其他指针指向list,则list无法释放 good: map.get(k).clear() map.remove(k) 即使这是有其他指针指向list,导致list无法释放,但是这个list是空的,泄漏的后果不严
阅读全文
posted @ 2024-08-02 00:24 silyvin
阅读(53)
评论(0)
推荐(0)
内存泄漏事故
摘要: Tool { Wrapper wrapper; void write() { Future s= this.new Consumer() {wrapper.getList();} futures.get() } Consumer extends Thread } Wrapper { List lis
阅读全文
posted @ 2024-08-01 21:46 silyvin
阅读(31)
评论(0)
推荐(0)
future task cancel (二)向下传递中断【重要】- (java object多大 java对象内存模型 数组有多长(十三))
摘要: 1 测试用例 当future.get响应interruptedexception时,意味着外界想要中断你这个线程和所有子任务 那么应当在interruptedexception响应中对future进行cancel 60 61 行一样结果 应当在38行处中断子任务writeTask 2 实例 1)主线
阅读全文
posted @ 2024-08-01 21:10 silyvin
阅读(35)
评论(0)
推荐(0)
java object多大 java对象内存模型 数组有多长(十一)分段锁
摘要: 重新回用IdentityHashmap,jdk没有并发版本,需要自己锁 借鉴ConcurrentHashmap 1.7的做法 , 加分段锁 以idendityhashcode为锚点
阅读全文
posted @ 2024-07-10 09:38 silyvin
阅读(28)
评论(0)
推荐(0)
java object多大 java对象内存模型 数组有多长(十)放弃解决hash冲突
摘要: java object多大 java对象内存模型 数组有多长(九)多线程2 中并没有什么好的办法,也make sense,毕竟压缩了数据 所以还是试图从数据特征入手 需要计算的大对象 80%的都是Double,所以剔除掉Double的逻辑判断 首先,重要结论,java object多大 java对象
阅读全文
posted @ 2024-06-25 15:47 silyvin
阅读(25)
评论(0)
推荐(0)
intern(二)什么东西会被intern Double会吗
摘要: 1 String list class private String x = "xx"; 直接指到既有对象,编译器不会new String 2 Integer list class private Integer = 127 127 intern 128 no intern,编译器Integer.v
阅读全文
posted @ 2024-06-25 15:12 silyvin
阅读(19)
评论(0)
推荐(0)
上一页
1
···
5
6
7
8
9
10
11
12
13
···
79
下一页
导航
博客园
首页
联系
订阅
管理
公告