记一次蚂蚁金服的面试经历( 四 )

corePoolSize: 表示需要设置的线程个数; maximumPoolSize: 线程池允许的最大线程个数; keepAliveTime: 空闲线程存活的时间,超过这个时间就会被回收; unit: 存活时间的单位;workQueue: 需要执行的任务队列。threadFactory: 线程工厂,用于创建线程,一般用默认的即可; handler: 拒绝策略,当任务太多来不及处理,如何拒绝任务;拒绝策略:直接丢弃(DiscardPolicy) 丢弃队列中最老的任务(DiscardOldestPolicy) 抛异常(AbortPolicy) 将任务分给调用线程来执行(CallerRunsPolicy)

6、Redis 为什么这么高效,使用的场景是什么?

回答了一下我们使用 redis 做缓存和登录 session 存在的场景,以及 redis 是单线程的。

1、完全基于内存,大多数请求都是内存操作,非常快速;2、数据结构简单,操作简单;3、采用单线程,避免了不必要的上下文切换和竞争条件,不存在多进程或者多线程的切换,不用考虑锁带来的性能消耗;4、使用多路 I/O复用模型,非阻塞 IO

7、分布式服务是否了解,zookeeper,dubbo 是否使用过?

推荐阅读