线程池的知识点相关

学习笔记,仅供自己参考,如有不对欢迎指正

1.线程的几种状态

  • 创建状态 线程被创建,还没有执行start方法
  • 可运行状态 被其他线程(比如main)调用start方法,此时线程随时可以被CPU调度执行
  • 运行状态 线程获取CPU权限执行。warning:线程只能从就绪状态进入到运行状态。
  • 阻塞状态 因为某种原因放弃CPU的使用权,暂停运行。直到再次进入可运行状态,才能被执行。一般分为三种情况:
    1.等待阻塞 通过调用线程的wait()方法,让线程等待某工作的完成。
    2.同步阻塞 线程在获取synchronized同步锁失败(因为锁被其他线程占用),它会进入同步阻塞状态。
    3.其他阻塞 通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或超时、或者I/O处理完毕时,线程重新转入就绪状态。
  • 死亡状态 线程run()、main()方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生

2.线程池知识点

  • 7个参数参考 https://www.cnblogs.com/alex-xyl/p/12460679.html
    1)corePollSize: 核心线程数。
    2)maximumPoolSize: 最大线程数。
    3)keepAliveTime 空闲线程存活时间
    4)unit 空间线程存活时间单位
    5)workQueue 工作队列
    6)threadFactory 线程工厂
    7)handler 拒绝策略
  • 实现线程池中的任务按优先级执行参考 https://www.cnblogs.com/Sinte-Beuve/p/12340634.html
    替换线程池默认的阻塞队列为 PriorityBlockingQueue(优先级队列)
  • 线程池的设计用到了哪种设计思想
    生产消费者模型
  • 你是如何配置线程池的?核心线程数你一般是怎么配置的?
    参考 https://www.cnblogs.com/gaopengpy/p/11989249.html
    根据IO密集型和CPU密集型来配置
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容