240 发简信
IP属地:山东
  • 120
    iOS即时通讯进阶 - CocoaAsyncSocket源码解析(Connect篇终)

    前言: 本文承接自上篇:iOS即时通讯进阶 - CocoaAsyncSocket源码解析(Connect篇) 注:文中涉及代码比较多,建议大家结合源码一起阅读比较容易能加深理...

  • @李鼎

    在五一前最后一天工作日早上摸鱼之际看到简书消息,受到您的认可,我个人是很开心的,关于您的邀请我思索了一下还是决定拒绝,原因大概有下面几点

    1. 又再看了一些源码,发现已经提供了TtlExecutors与相关ExecutorService实现线程池包装,其中由于subit(Runnable)每次都会包装新的TtlRunnable对象,会出发即时的现场数据抓取,因此前面提到的功能思考在部分使用用法中已经conver了,那么剩余问题就变成了对于重复使用的TtlRunnable如何处理,那么也很简单,在构造函数中提供外部可管理的 new AtomRerence(capture)就好,比如在构造函数中加参数。总之预想中实现并不复杂,但问题应该不会这样简单,基础库应该考虑到使用者的心智负担和兼容性,如果贸然提供与之前使用逻辑不一致的能力,很可能引发误用,导致口碑下滑,由于目前对线程池包装对重新生成TtlRunnable对象做组织,是直接复用该对象的,如果贸然更改可能导致历史使用用法中ThreadLocal数据发生与预期不一致的变化,比如有些人在另一个与创建TtlRunnable时无关的子线程去submit,此时数据一定会变化,这样就可能造成人家业务方功能异常。总之,如何兼容是个问题,需要耗费想法去思考解决
    2. 在分析问题后,为啥我不愿意行动呢,原因可能比较奇葩,我本人的背景并不是java服务,坦白讲对于您这个库的核心使用场景我是缺乏具体体会的,前面提到的使用场景兼容性问题我预计就会有些思路门槛。另外,我个人对于这个库总共也就看了个把小时,看的过程目标也只是分析主干内容学习精髓,目前还没有深入该库的打算,作为android开发背景,在我的认知中这个库的使用场景确实有限,对于我应该不值得投入过量的精力。最主要的还是我近期是在做系统性的知识复习,本身缺乏时间,五一也有其他安排,因此对于您的好意我目前只能表示抱歉

    感谢您的赞赏,我本人也非常开心能与开源作者进行沟通

    TransmittableThreadLocal详解

    1、简介 TransmittableThreadLocal 是Alibaba开源的、用于解决 “在使用线程池等会缓存线程的组件情况下传递ThreadLocal” 问题的 In...

  • 另外个人觉得,在构造ttlrunnable对象的时候就收集现场数据时机有点早,应该还是submit的时候收集数据最好。runnable可能有复用场景,tl.set方法按理说在submit前面用应该比较常见。(当然我并不是站在适配现有工程实现的角度,硬要说的话,字节码操作也能换掉)

    TransmittableThreadLocal详解

    1、简介 TransmittableThreadLocal 是Alibaba开源的、用于解决 “在使用线程池等会缓存线程的组件情况下传递ThreadLocal” 问题的 In...

  • 我倒是觉得精髓在AtomReference保存thread内的threadlocalmap中部分数据作为现场快照这里。holder只是一个当前线程中threadlocalmap部分key的保存容器,源码里还有从register里自定义的threadlocal可注册,他本质上是在决定需要抓取哪些现场数据,只是实现方式是通过了一个全局的inherentthreadlocal作为收纳threadlocalmap key的容器,实现了在set数据时自动登记,从而避免手动关联(例如避免了构造ttlrunable时主动将关心的ttl对象绑定到上面),这是一个优雅实现,但核心还在是在跨线程分享快照数据这里,只有能跨线程保存数据,才能重新布置现场并恢复现场

    TransmittableThreadLocal详解

    1、简介 TransmittableThreadLocal 是Alibaba开源的、用于解决 “在使用线程池等会缓存线程的组件情况下传递ThreadLocal” 问题的 In...

  • HttpURLConnection 使用总结

    要使用 HttpURLConnection,最好对一些基础概念有所认识,比如 TCP/IP 协议,HTTP 报文, Socket 等。先谈一些我的认识,有可能不完全正确: S...

  • 一个是Callback中的handleMessage,一个是Handler中的handleMessage,肯定调用不到啊

  • (转)Visual studio 配置opengl,2019版适用

    https://www.cnblogs.com/FireCuckoo/p/7826615.html

  • (转)K-means、与KNN算法区别及其代码实现

    https://blog.csdn.net/sinat_35512245/article/details/55051306

个人介绍
此处只是个人学习的记录,很少有单纯面向他人的学习引导,望周知。