线程池
文章平均质量分 72
小牛码阳
这个作者很懒,什么都没留下…
展开
-
ThreadLocal的使用场景以及使用时要注意的问题
ThreadLocal的使用场景以及使用时要注意的问题ThreadLocal的定义ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,每个线程只能访问和修改自己的局部变量,变量彼此之间是相互隔离的,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。ThreadLocal的使用创建、设值、取值、删除ThreadLocal<S原创 2021-05-20 11:55:54 · 1597 阅读 · 0 评论 -
线程池中为什么要使用阻塞队列?
在线程池中活跃线程数达到corePoolSize时,线程池将会将后续的task提交到BlockingQueue中,为什么这样设计呢?原因为: 线程池创建线程需要获取mainlock这个全局锁,影响并发效率,阻塞队列可以很好的缓冲。 如果新任务的到达速率超过了线程池的处理速率,那么新到来的请求将累加起来,这样的话将耗尽资源。 在一个task提交到线程池时,假设可以被线程池中的一个线程执行,则进行以下过程:exeute —》addWorker(Runnable command, bo转载 2021-06-07 16:09:53 · 2660 阅读 · 0 评论