`

多线程面试题

阅读更多

1 CPU核心数、线程数的关系
2 在CPU时间片轮转机制中设置多少毫秒是合理的?
3 什么是进程?什么是线程?一个进程最多可以创建多少个线程?
4 用户单一进程同时可打开文件数量是多少?
5 什么是并行,什么是并发?(并发交替替执行,并行是同时执行)
6 什么是同步,什么是异步,什么是堵塞,什么是非堵塞?
7 实现线程的三种方式?
8 线程的生命周期是什么?线程池的初始化的时候,池里面的线程处于生命周期的那个阶段?
9 什么是线程组?其左右是什么?
10 ThreadLocal是用来解决共享资源的多线程访问的问题吗?

11 每次使用完ThreadLocal,都调用它的remove()方法,为什么呢?
12 volatile的作用?
13 run方法是否可以抛出异常?如果抛出异常,线程的状态如何?
14 什么是隐式锁?什么是显式锁?什么是无锁?
15 多线程之间是如何通信的?
16 Java的内存模型是什么?
17 什么是原子操作?生成对象的过程是不是原子操作?
18 CopyOnWrite机制是什么?
19 什么是CAS?
20 什么是AQS?

21 Fail-Fast机制是多线程原因造成的吗?
22 为什么要用线程池?常见的线程池有哪些?
23 阻塞队列的常用方法?
24 为什么数组比链表随机访问速度会快很多呢?
25 什么时候用定时器,什么时候用延时队列?
26 堵塞队列的add,offer,put的区别?
27 线程的阻塞与挂起有什么区别?
28 sleep的时候,是否会释放已经获得到锁?
29 yield的作用是什么?
30 join的作用?

31 sleep方法和yield方法的区别?
32 什么时候会发生InterruptedException异常?
33 如何设计一个利用无锁来实现线程的安全?
34 隐式锁什么情况下会释放锁?
35 描述一下可重入的实现机制?
36 什么是内存可见性?什么是寄存器可见性?
37 什么是自旋?举例说明一下。自旋的后果是什么呢?
38 notifyAll之后所有的线程都会在次抢夺锁,如果抢夺失败怎么办?
39 什么是内存栅栏?
40 什么是before-happen?

41 常见的限流算法有哪些?
42 synchronized锁的范围有哪些?
43 为什么使用线程池技术?
44 常见的创建线程池的三种方式是什么?各有什么特点?
45 可缓存的线程池中多少秒未使用的线程将被移除?
46 线程池内部的核心队列什么?
47 线程池中控制线程创建数目的参数是什么?
48 线程池在什么情况下需要丢弃处理?
49 线程池任务拒绝策略有哪些?
50 创建线程池常用的堵塞队列有哪些?

51 Future的主要功能是什么?
52 FutureTask的结构关系?FutureTask如何使用呢?

如果有更好的题目,欢迎加群,让我们共建一个高质量的学习资料。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics