1.线程池ThreadPool的基本定义?
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。
2.线程池的背景及作用?
线程池是用来解决多任务并发,频繁创建线程和销毁线程导致资源的浪费和效率低下的一种技术。类似于数据库连接池,这种池化技术用于将部分资源重复利用,或者说是用已有的资源对多个任务进行服务。线程池就是创建固定的线程数量,服务于并发的任务,避免每一个任务,系统都进行线程的创建和销毁,增加系统的负担,线程数量过多时会造成内存溢出。
3.线程池的运用场景:
频繁的任务创建,快速的任务响应,同等的任务优先级。如果需要很长时间才有一个任务需要执行,那样创建线程池就是浪费资源,如果执行一个任务需要几个小时,那这个任务在线程池中执行一次就会阻塞大量的线程。任务的优先级在线程池没有作用,因为线程池的任务执行顺序是队列。如果我们需要执行的任务有轻重缓急,那么不建议使用线程池。
网友评论

