线程池与类加载

线程池入参:
1、corePoolSize:核心线程数,
* 核心线程就是会一直存在,即使线程有空闲的,
* 当线程数小于核心线程数时,即使有空闲的线程,线程池也会去创建新的线程,
*
2、queueCapacity:任务队列容量(阻塞队列)
* 当核心线程数达到最大时,新任务会放在队列中排队等待执行
3、maxPoolSize:最大线程数
* 当线程数》corePoolSize 且任务队列已满时,线程池会创建新的线程来处理任务
* 当线程数= maxpoolsize时,且任务队列已满时,线程池会执行拒绝策略
4、keepAliveTime:线程空闲时间
* 当线程空闲时间达到设置值时,线程会退出,直到达到核心线程数
5、 allowCoreThreadTimeOut
* 允许核心线程超时时间
6、rejectExecutionHandleer:达到最大线程时拒接策略
1、丢弃任务,抛出异常
2、用当前线程执行任务
3、忽略当作什么事都没有发生
4、从队列中剔除最早进入的任务



为啥类加载器三层结构:加载区域不同,
1、引导类加载器 bootstrap class loader
- 用来加载java_home/jre/rt.jar 或者是sun.boot.class.path路径下的内容
- 加载扩展类和应用程序类加载器,并制定他们的父加载器
2、扩展类加载器
- 用来加载java 扩展库(java_home/jre/ext/*.jar 或者java.ext.dirs路径下的内容)
3、应用程序类加载器 application class loader
- 根据java应用的类路径 一般应用程序类都是它来加载完成,有AppClassLoader 实现
自定义类加载器:
- 实现classLoader类的方式
双亲委托机制
-- 一个类加载器在加载一个类的时候,先让父类加载去加载,只有父类加载不了的,自己才会去加载, 双亲委托机制,保证一个类智能加载一次,保证了核心库的安全,(比如用户写了Object类),
#随笔#
全部评论
昨天阿里在双亲加载机制问了我如何保证类是同一个 没回答上 后来查是根据全类名和类加载器是否都一样,这个可以记一下
点赞 回复 分享
发布于 2020-04-17 15:38

相关推荐

10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
1 4 评论
分享
牛客网
牛客企业服务