Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群25
Java1234官方群25:838462530
        

springcloud分布式电商秒杀实战课程

实战RabbitMQ消息队列课程(免费领取)

毕设代做包查重包过联系人QQ:1982956321毕设大神 毕设代做包查重包过

66套java实战课程无套路领取

Java1234 VIP课程

领取微信扫码登录Java实现视频教程

Java1234至尊VIP(特价活动)

java学科12月份面试问题收集 PDF 下载


分享到:
时间:2021-02-12 20:42来源:http://www.java1234.com 作者:小锋  侵权举报
java学科12月份面试问题收集 PDF 下载
失效链接处理
java学科12月份面试问题收集 PDF 下载

本站整理下载:
提取码:izrm
 
相关截图:


主要内容:

1.线程池的原理问题
 
核心线程数、最大线程数、任务队列。核心线程数指的是线程池的基本大小;最大线程数指的是,同一时刻线程池中线程的数量最大不能超过该值;任务队列是当任务较多时,线程池中线程的数量已经达到了核心线程数,这时候就是用任务队列来存储我们提交的任务。 与其他池化技术不同的是,线程池是基于生产者-消费者模式来实现的,任务的提交方是生产者,线程池是消费者。当我们需要执行某个任务时,只需要把任务扔到线程池中即可
 
先判断线程池中线程的数量是否超过核心线程数,如果没有超过核心线程数,就创建新的线程去执行任务;如果超过了核心线程数,就进入到下面流程。
判断任务队列是否已经满了,如果没有满,就将任务添加到任务队列中;如果已经满了,就进入到下面的流程。
再判断如果创建一个线程后,线程数是否会超过最大线程数,如果不会超过最大线程数,就创建一个新的线程来执行任务;如果会,则进入到下面的流程。
执行拒绝策略。
 
2.4种创建线程池的方法
 
 
Java通过Executors(jdk1.5并发包)提供四种线程池,分别为:
1.newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
2.newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
3.newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
4.newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
 
3.使用多线程依次取出AaBbCc...(存放无序 "目的是为了考察锁的使用") 
 
 
4.怎么获取锁的返回值(这是原话);
 
5.是否了解return lock(或许说的是ReetrantLock); (这个对项目没怎么问,集合 mysql redis 多线程问的比较多)
6.什么是死锁
所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
 
 
7.冒泡排序
冒泡排序:相邻的两个元素进行比较,如果符合条件换位
 
 
8.activeMQ和rabbitMQ的区别
 
 
 
 
 
9.消息中间件的特点

 

------分隔线----------------------------
锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程