科大讯飞Java 2面经
#软件开发笔面经#
6.5北京时间上午10点2面
简单自我介绍,项目介绍
-----------------------------开始问些简单八股(面试题精选)--------------------------
1. 线程池都有哪些状态?
线程池有5种状态:Running、ShutDown、Stop、Tidying、Terminated。(还有就绪,阻塞等)
线程池各个状态切换框架图:
2. 线程池中 submit()和 execute()方法有什么区别?
- 接收的参数不一样
- submit有返回值,而execute没有
- submit方便Exception处理
3. 在 java 程序中怎么保证多线程的运行安全?
线程安全在三个方面体现:
- 原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic,synchronized);
- 可见性:一个线程对主内存的修改可以及时地被其他线程看到,(synchronized,volatile-读写线程);
- 有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序,(happens-before原则)。
------------------结束面试------华丽的分割线-----------------
#软件开发笔面经#