多线程详解
重点,好好看下吧。然后大家先掌握基础的就行,并发的那部分比较难,大家有时间再去看课程大纲的 Java并发。
面试提问方式(都是真题,越上面的题问的越多)
PS:这些全部来源于 八股文考点全方位分析
1、Java多线程基础这块,就不总结了,感觉没什么好总结的,直接看下面的提问方式吧,比较杂。
2、进程和线程的区别;
3、创建线程的方式;
4、如何停止一个线程的运行
5、Runnable和Callable创建线程有什么区别?
6、Thread类和Runable接口的最大区别是什么?
7、线程的几种状态,以及状态的转换
8、线程的生命周期 感觉这个应该跟状态区分一下 生命周期说一下过程啥的
9、什么是线程安全?为什么不安全?
10、阻塞状态和等待状态的区别
11、怎么实现线程安全
12、锁怎么实现线程安全
13、 多线程什么场景下会发生死锁 , 有什么具体的办法可以避免死锁
14、wait和sleep的区别,没有说清楚,HR提醒用wait时会释放锁,sleep不会
15、多线程了解吗,为什么要多线程。如何启动一个线程,主动说了start和run的区别
16、多线程环境下为什么要引入同步的机制
17、为什么要线程安全,举例子,说了数据库脏读的例子, Java方面不清楚,面试官给了非元子性的操作 i++的例子怎么实现线程安全
18、volatile的作用和原理
19、什么是原子性
20、volatile能不能保证原子性
21、Java里面的锁有哪些?
22、java里面的线程和操作系统的线程一样吗?
23、wait-notify、线程的状态
24、notify 和 notifyAll 的区别