博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程池
阅读量:5209 次
发布时间:2019-06-14

本文共 663 字,大约阅读时间需要 2 分钟。

一.在什么情况下使用线程池 :1.单个任务处理的时间比较短           2.需处理的任务的数量大

 

二.线程池就像是一把双刃剑,有利也有弊

   使用线程池的好处:

    1.减少在创建和销毁线程上所花的时间以及系统资源的开销 

    2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及”过度切换”。
    
    使用线程池的弊端
    1. 用线程池构建的应用程序容易遭受任何其它多线程应用程序容易遭受的所有并发风险,诸如同步错误和死锁,它还容易遭受特定于线程池死锁、资源不足和线程泄漏并发错误,线程池和其它排队机制依靠使用 wait() 和 notify() 方法,这两个方法都难于使用。

    2.如果编码不正确,那么可能丢失通知,导致线程保持空闲状态,尽管队列中有工作要处理。

 

 三. 线程池的分类及意义:

    1.创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,如果无可回收,则新建线程
    2.创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。
    3.创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行
    4.创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任务执行

 

转载于:https://www.cnblogs.com/running-mcdongjue/p/running-mcdongjue.html

你可能感兴趣的文章
ubuntu装软件包
查看>>
Mysql出现(10061)错误提示的暴力解决办法
查看>>
2018-2019-2 网络对抗技术 20165202 Exp3 免杀原理与实践
查看>>
NPM慢怎么办 - nrm切换资源镜像
查看>>
CoreData 从入门到精通(四)并发操作
查看>>
Swift - UIView的常用属性和常用方法总结
查看>>
Swift - 异步加载各网站的favicon图标,并在单元格中显示
查看>>
Java编程思想总结笔记Chapter 5
查看>>
51 nod 最大距离
查看>>
[LeetCode]662. Maximum Width of Binary Tree判断树的宽度
查看>>
WinForm聊天室
查看>>
ASCII码表含义
查看>>
Updlock 与 Holdlock
查看>>
Python 从零学起(纯基础) 笔记(一)
查看>>
【Python学习笔记】1.基础知识
查看>>
梦断代码阅读笔记02
查看>>
Java 线程安全问题
查看>>
selenium学习中遇到的问题
查看>>
大数据学习之一——了解简单概念
查看>>
P1-13:集成日志组件 logback 2彩色日志
查看>>