热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

创建线程池有哪几种方式?ThreadLoca使用场景有哪些?

知了姐
2024-08-16 09:42:59
0

  想必大家再Java面试过程中,很多人都被问过线程池和ThreadLoca,创建线程池有哪几种方式?ThreadLoca使用场景有哪些?

  创建线程池有哪几种方式?

  ①. newFixedThreadPool(int nThreads)

  创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程。

  ②. newCachedThreadPool()

  创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求增加时,则可以自动添加新线程,线程池的规模不存在任何限制。

  ③. newSingleThreadExecutor()

  这是一个单线程的Executor,它创建单个工作线程来执行任务,如果这个线程异常结束,会创建一个新的来替代它;它的特点是能确保依照任务在队列中的顺序来串行执行。

  ④. newScheduledThreadPool(int corePoolSize)

  创建了一个固定长度的线程池,而且以延迟或定时的方式来执行任务,类似于Timer ThreadLoca使用场景有哪些?

  线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java提供ThreadLocal类来支持线程局部变量,是一种实现线程安全的方式。但是在管理环境下(如 web 服务器)使用线程局部变量的时候要特别小心,在这种情况下,工作线程的生命周期比任何应用变量的生命周期都要长。任何线程局部变量一旦在工作完成后没有释放,Java 应用就存在内存泄露的风险。

  创建线程池有哪几种方式?ThreadLoca使用场景有哪些?关注汇智知了堂成都Java培训,带你了解更多Java相关知识和相关问题。


大家都在看

没想到,首次面试就拿到offer了

2024-08-16 浏览次数:0

JSP与Servlet:Java Web开发的两...

2024-08-16 浏览次数:0

动态代理和静态代理

2024-08-16 浏览次数:0

平均薪资9200+,最高月薪15400元

2024-08-16 浏览次数:0

漏洞挖掘和渗透测试的区别是什么?网安人必看

2024-08-16 浏览次数:0

知了堂ZVipPad 4.0版本升级,赋能IT学...

2024-08-16 浏览次数:0
最新资讯
创建线程池有哪几种方式?Thr...   想必大家再Java面试过程中,很多人都被问过线程池和ThreadLoca,创建线程池有哪几种方式...