开发中,用的比较多的就是线程池,不建议自己new线程,这是为了避免线程创建、上下文开销。
线程池中,有几个参数:
核心线程数
最大线程数
阻塞队列
拒绝策略
空闲线程存活时间
存活时间单位
线程工厂
上图是线程的一个执行逻辑。
任务进来时,核心线程池未满,则创建核心线程;
如果核心线程满了,则任务进入阻塞队列;
如果阻塞队列也满了,且未达到最大线程数,则开始创建非核心线程;
没有空闲线程,以及队列也已经满了,则按照设置的拒绝策略拒绝任务
以上就是多线程简单执行逻辑,其背后设计更加复杂,自行体会。
文章转载自sCloud,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。