高并发
清风自来&静等花开
这个作者很懒,什么都没留下…
展开
-
线程池的创建过程
1)线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面有任务,线程池也不会马上执行它们。 2)当调用execute()方法添加一个任务时,线程池会做如下判断: a、如果正在运行的线程数量小于corePoolSize,那么马上创建线程执行这个任务。 b、如果正在运行的线程数量大于或等于corePoolSize,那么将这个任务放入队列。 c、如果这个时候队列满了,而且正在...原创 2020-07-12 21:53:20 · 2430 阅读 · 0 评论 -
wait与notify
下面继续来记录多线程相关,本次今天记录并分享的都略微有点偏概念,但是看完之后绝对有助于提高读多线程相关的使用能力呦: 线程有新建、就绪、运行、阻塞、死亡五种状态。 下面就来说说sleep、wait、notify、notifyall五个方法: 1)sleep:将一个正在运行的线程进入睡眠状态,参数为睡眠时间设置,超过睡眠时间便继续执行。 2)wait:将一个线程进入阻塞状态并释放其所持有的所有对象的...原创 2019-11-17 18:26:54 · 153 阅读 · 0 评论 -
线程池是如何启动线程的
啃完小龙虾掐指一算,周末又要结束了,赶紧来记录并分享点东西… … … 日常工作中多多少少都会需要用多线程去处理一些事情,下面就来记录并分享下线程池启动线程相关的知识: 一、线程池的好处 合理利用线程池会带来以下好处: 无限制的创建和销毁线程不仅会消耗系统资源还会降低系统的稳定性,线程池减少了线程的创建和销毁操作,从而可以提高一些性能。需要线程时,线程可立即执行,无需重新创建。 二、启动策略 1)当...原创 2019-11-17 18:06:39 · 3404 阅读 · 0 评论 -
ThreadLocal之实现原理
好久木有来更新了,下面来记录并分享下ThreadLocal的实现原理: 下面让我们一起深入ThreadLocal的内部实现。 我们需要关注的,自然是ThreadLocal的set()方法和get()方法。从set()方法先说起: public void set(T value){ Thread t = Thread.currentThread(); ThreadLocalMap map = g...转载 2019-07-29 20:34:09 · 242 阅读 · 0 评论