会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
无
循环日志
摘要: 0 不允许在循环内打日志 1 主要策略:限制某个循环体内打日志的次数 主要困难:调用链太长,传递循环当前次数要改很多方法,类似于事务的connction,这种不方便传递参数的东西就想到了threadlocal 2 不想永久某线程到100就一直不让打了,想第二天的job清0,同时也不想用timer——
阅读全文
posted @ 2024-11-01 21:31 silyvin
阅读(5)
评论(0)
推荐(0)
编辑
成员变量 局部变量 内存泄漏
摘要: 为什么用成员变量?要多态 成员变量会有什么问题?如果对象本身用完被保存起来了,则这些资源泄漏了 能不能在最外边用finally,置为null?可以,但是就是不想用fianlly func() { try { this.resourceReference = new xxx; ...... } fin
阅读全文
posted @ 2024-10-09 01:07 silyvin
阅读(3)
评论(0)
推荐(0)
编辑
交换Integer方法
摘要: void func(Integer i1, Integer i2) Integer ii1 = new Integer(10001) ii1 在栈,指向堆里面的 new Integer,假设new Integer地址为xxxx1 Integer ii2 = new Integer(10002) 假设
阅读全文
posted @ 2024-09-15 23:39 silyvin
阅读(5)
评论(0)
推荐(0)
编辑
比较分支
摘要: bb上的pr是啥 有master / dev 两个分支master最新节点c1 (git log master|head -1)dev最新节点c2 (git 1og dev head -1) 共同节点(git merge-base master dev) 当把dev合并到masten时,显示从c0+
阅读全文
posted @ 2024-09-03 14:50 silyvin
阅读(6)
评论(0)
推荐(0)
编辑
增加代码时怎么样降低风险,超时意识
摘要: 1 try catch throuable 2 避免主线程阻塞,要另起线程,用future。get超时机制 必要时放弃子线程,确保主线程不被阻塞
阅读全文
posted @ 2024-08-30 00:26 silyvin
阅读(4)
评论(0)
推荐(0)
编辑
intern(三)自定义intern的内存泄漏
摘要: 1 原理 object -> Double map -> Double 两条都是强引用,当object释放时,Double仍然不能释放 应当把map那条改为弱引用 2 实践 一次内存优化
阅读全文
posted @ 2024-08-30 00:19 silyvin
阅读(5)
评论(0)
推荐(0)
编辑
内存泄漏事故(四)future能否感知error
摘要: 必须new才会加载,=null不会 首先最好先证明加载不了的类确实是在futrue真正run的时候加载的,而不是在定义future的时候,因为题目是future能否感知,如果在主线程定义时加载则不准确 可以看到ExecutionException包裹了NoClassDefFoundError 关于n
阅读全文
posted @ 2024-08-17 11:56 silyvin
阅读(3)
评论(0)
推荐(0)
编辑
内存泄漏事故(三)线程的interrupted flag 的坑
摘要: 背景: 子线程中,分线程处理然后聚拢 future。get 但是在futureget的异常处理中,并未抛出异常,只是调用Thread.currentThread().interrupt(), 因此主线程要监控这个interrup旗标,从而决定是否抛出异常 1 起先 发现没什么用 2 旗标的生命周期
阅读全文
posted @ 2024-08-17 11:33 silyvin
阅读(4)
评论(0)
推荐(0)
编辑
内存泄漏事故(二)线程的中断不可信任
摘要: 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
阅读(11)
评论(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
阅读(5)
评论(0)
推荐(0)
编辑
下一页
导航
博客园
首页
联系
订阅
管理
公告