1,谈谈ThreadLocal(阿里一面)
答:①:ThreadLocal 字面意思是本地线程,提供了本地线程存储机制,可以把数据存入某个线程内部,可以在任意时刻,任意方法中获取该线程缓存的数据
②:ThreadLocal 底层是通过ThreadLocalMap进行缓存数据的,即key-value形式缓存数据,key是当前线程对象,value是要缓存的值(源码见图)
2,并发编程三要素:
①:原子性:不可分割操作,多个步骤要保证同时成功或者同时失败
②: 有序性:程序执行的顺序和代码的顺序保持一致
③:可用性:一个线程对共享变量的修改,另一个线程立马能看到
3,京东一面:如果你提交任务到线程池,线程池队列已满,这时会发生什么?
①,如果线程池使用的是无界队列,线程池不会满,可以继续提交;
②,如果线程池使用的是有界队列,提交任务时,如果核心线程数没达到上限,那么增加线程,如果已经到达了上限,执行拒绝策略;