美文网首页
线程池的知识点相关

线程池的知识点相关

作者: 浩仔_Boy | 来源:发表于2021-02-18 21:30 被阅读0次

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

    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密集型来配置

    相关文章

      网友评论

          本文标题:线程池的知识点相关

          本文链接:https://www.haomeiwen.com/subject/mrwfxltx.html