面试题答案
一键面试订单处理模块
- 选择:FixedThreadPool
- 理由:电商系统订单处理对稳定性要求高,需控制并发线程数。FixedThreadPool可设置固定数量线程,避免因过多线程导致系统资源耗尽。同时,订单处理通常需按顺序处理部分业务,如订单支付、库存扣减等,FixedThreadPool的线程复用机制能满足此需求,提高处理效率并确保系统稳定运行。
商品缓存更新模块
- 选择:CachedThreadPool
- 理由:商品缓存更新任务的执行频率和时间具有不确定性。CachedThreadPool能根据任务数量灵活创建和回收线程,适合处理突发、短时间高并发任务。在商品缓存更新时,可能会因促销活动、新商品上架等情况产生大量更新请求,CachedThreadPool能快速响应并处理这些请求,任务执行完后线程可被回收,不会造成资源浪费。
用户登录认证模块
- 选择:SingleThreadExecutor
- 理由:用户登录认证模块需确保操作的顺序性和数据一致性,避免并发操作导致安全问题。SingleThreadExecutor只有一个线程,能按顺序依次处理每个用户的登录认证请求,保证认证逻辑按顺序执行,防止多线程并发引起的数据混乱和安全漏洞,同时也便于对认证过程进行监控和日志记录。