240 发简信
IP属地:天津
  • @085908b4bd0e 是的

    三大性质总结:原子性,有序性,可见性

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. 三大性质简介 在并发编程中分析线程安全的问题时往往需要切入点,那就是两大核心:...

  • @jackynew2019 如何证明你的结论?

    让你彻底理解volatile

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. volatile简介 在上一篇文章中我们深入理解了java关键字synchro...

  • 你的理解没问题,这里的描述也是这个意思

    FutureTask基本操作总结

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1.FutureTask简介 在Executors框架体系中,FutureTask用...

  • @7e1ab4c67b70 是的,这里描述有问题,最近结合工作经验,在整理出版书籍欢迎支持

    线程池之ScheduledThreadPoolExecutor

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. ScheduledThreadPoolExecutor简介 Scheduled...

  • @46eaf00003b9 是的

    线程池之ScheduledThreadPoolExecutor

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. ScheduledThreadPoolExecutor简介 Scheduled...

  • 是的,这里笔误描述有点问题
    1. ThreadPoolExecutor的execute方法和submit方法,会根据当前corePoolSize、阻塞队列容量以及maximumPoolSize三个参数决定Work类的创建时机,但是任务要想执行最终都是通过addWork方法新建了Work类,然后并通过runWorker方法启动线程执行当前任务或者Work并不断的从阻塞对列中获取异步任务然后进行执行;
    2. ScheduledThreadPoolExecutor的schedule方法,则是先将任务移入到阻塞队列中,然后继续通过addWork方法新建了Work类,然后并通过runWorker方法启动线程并不断的从阻塞对列中获取异步任务进行执行

    最近结合工作经验,在整理出版书籍欢迎支持

    线程池之ScheduledThreadPoolExecutor

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. ScheduledThreadPoolExecutor简介 Scheduled...

  • 笔误感谢提醒,最近结合工作经验在出版书籍,后续希望支持

    并发容器之BlockingQueue

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. BlockingQueue简介 在实际编程中,会经常使用到JDK中Collec...

  • peek()不会抛异常吧,空时返回null。

  • 出了set值外,也需要去清理脏entry,生命周期每一个操作都在尽力去降低内存泄漏的风险

    一篇文章,从源码深入详解ThreadLocal内存泄漏问题

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. 造成内存泄漏的原因? threadLocal是为了解决对象不能被多线程共享访问...

  • 前向搜索的时候是找到最前面的脏entry为止,直到 (e = tab[i]) != null,不满足脏entry的前提条件

    一篇文章,从源码深入详解ThreadLocal内存泄漏问题

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. 造成内存泄漏的原因? threadLocal是为了解决对象不能被多线程共享访问...

  • 另外n更新后又会执行log2n次,搜索次数增加也是增大了搜索范围呀,就是一种启发式惰性的搜索策略

    一篇文章,从源码深入详解ThreadLocal内存泄漏问题

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. 造成内存泄漏的原因? threadLocal是为了解决对象不能被多线程共享访问...

  • 果没有遇到脏entry就整个扫描过程持续log2(n)次,log2(n)的得来是因为n >>>= 1,每次n右移一位相当于n除以2。如果在扫描过程中遇到脏entry的话就会令n为当前hash表的长度(n=len),再扫描log2(n)趟

    这是原文呀,表达的是次数呀?搜索趟数呀

    一篇文章,从源码深入详解ThreadLocal内存泄漏问题

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. 造成内存泄漏的原因? threadLocal是为了解决对象不能被多线程共享访问...

  • expungeStaleEntry是从slotToExpunge为起点,expungeStaleEntry也是干清理的活儿,cleanSomeSlot也是干清理的活儿,把expungeStaleEntry包在里面,所以我这里的表达就是清理就是从slotToExpunge开始,你拆开了来看也是对的,只是理解视角不一样。感谢阅读!

    一篇文章,从源码深入详解ThreadLocal内存泄漏问题

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. 造成内存泄漏的原因? threadLocal是为了解决对象不能被多线程共享访问...

  • 覆盖的话是key的hash值一样,如果hash值不一样的话就会进行新增

    并发容器之ThreadLocal

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. ThreadLocal的简介 在多线程编程中通常解决线程安全的问题我们会利用s...

  • threadlocal使用需要遵循严格的代码规范就像阿里代码归约也对threadlocal做了说明,如果是按你这种方式自然不会存在threadlocal为null的情况,这里只是举得场景示例,

    并发容器之ThreadLocal

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. ThreadLocal的简介 在多线程编程中通常解决线程安全的问题我们会利用s...

  • 对,在处理TreeBin类型节点时,是将TreeNode节点按照正序遍历处理,感谢反馈

    并发容器之ConcurrentHashMap(JDK 1.8版本)

    1.ConcurrentHashmap简介 在使用HashMap时在多线程情况下扩容会出现CPU接近100%的情况,因为hashmap并不是线程安全的,通常我们可以使用在ja...

  • 谢谢你的提醒,比如,感谢你的阅读

    详解Condition的await和signal等待/通知机制

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1.Condition简介 任何一个java对象都天然继承于Object类,在线程间...

  • @小鱼人爱编程 在并发场景,如何能保障signal线程一定会先执行了?时间片一定会先分配给signal线程后给到waiter线程呢?所有的场景都有可能出现,这里的while无论是单个waiter还是多个waiter都应该是有必要的,感谢你的阅读

    详解Condition的await和signal等待/通知机制

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1.Condition简介 任何一个java对象都天然继承于Object类,在线程间...

  • 没太懂你说的数据是啥意思,这里的condition队列维护的是持有线程引用的节点

    详解Condition的await和signal等待/通知机制

    原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1.Condition简介 任何一个java对象都天然继承于Object类,在线程间...

  • 说的有点绕,可能有张图才能理解你的意思,acquireQueued是一个自旋操作,当头结点释放锁后Lock.unpark后会通知后续等待节点,然后节点会再继续判断是否满足了退出等待的条件

    深入理解AbstractQueuedSynchronizer(AQS)

    1. AQS简介 原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 在上一篇文章中我们对lock和AbstractQueuedSync...