Java核心面试宝典】Day13、面试官最爱问的“进程”面试题

网友投稿 538 2022-05-28

Hello,你好呀,我是灰小猿!一个超会写bug的程序猿!

用坚持缔造技术、用指尖敲动未来!

和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣!

在此专栏《Java核心面试宝典》记录我们备战梦想的【day 13】!

【Java核心面试宝典】Day13、面试官最爱问的“进程”面试题

前几天和大家一起总结了一些关于Java基础的相关面试题,但是这也只是其中的一部分,还有很多之后慢慢总结慢慢学习,今天呢,就来盘点一下在Java进程和线程控制上的一些面试题。

1、进程和线程有哪些联系?

进程是程序依次执行的过程,线程是比进程小的执行单位,一个进程在其执行过程中可以创建多个线程,多个线程共享进程的堆和方法区内存资源。

2、进程和线程的区别是什么?

进程和线程最大的区别是,进程是独立的,而各个线程不一定独立,因为同一个进程中的多个线程很有可能相互影响,线程执行开销小,但不利于资源的管理和维护,进程开销较大,但是有利于资源的统一管理和维护。

3、线程的状态有几种,分别是什么状态?

线程的状态有6种,分别是初始状态、运行状态、阻塞状态、等待状态、超时等待状态和终止状态。

4、简述一下线程的6种状态?

初始状态(NEW): 线程已经构建,但是尚未启动。

运行状态(RUNNABLE): 包括就绪(READY)和运行中(RUNNING)两种状态,统称为运行状态。

阻塞状态(BLOCKED): 线程被锁阻塞。

等待状态(WAITING): 线程需要其他线程做出特定动作(通知或者中断)

超时等待状态(TIME_WAITING): 不等同于等待状态,超时等待状态可以在指定的时间内自行返回。

终止状态(TERMINATED): 当前线程已经执行完毕。

5、详细说一下等待状态和超时状态的区别?

和等待状态相比,超时等待状态增加了超时限制,当达到执行的超时时间后,线程将会自动返回到运行状态。

6、为什么需要使用多线程?

线程是程序执行的最小单位,多个线程同时运行可以减少线程上下文切换的开销,多线程是开发高并发系统的基础(即允许同一时间段执行多个任务),利用好多线程机制可以很好的提升系统的并发能力和性能。

7、多线程可能存在哪些问题?

多线程可能存在的问题包括内存泄漏、上下文切换、死锁以及受限于硬件和软件的资源限制问题等。

8、那么多线程中关键字synchronized解决的是什么问题呢?

关键字synchronized解决的是多个线程之间访问资源的同步性的问题。

9、关键字synchronized修饰实例方法、静态方法和代码块时,分别是什么含义?

修饰实例方法时,会给当前对象实例加锁;

修饰静态方法时,会给当前类加锁;

修饰代码块时,会给指定对象加锁,进入同步代码/代码块之前需要获得当前对象/当前类/指定对象的锁。

10、关键字volatile有哪两个作用?

关键字volatile的作用是保证变量的可见性,以及防止指令进行重排序优化。

11、关键字volatile的使用需要满足什么条件?

使用关键字volatile的变量必须满足两个条件。

一是对变量的写入操作不依赖于变量的的当前值。能够确保只有单个线程更新变量的值。

二是该变量没有包含在具有其他变量的不变式中。

12、说一说关键字synchronized和volatile的区别?

关键字 volatile 是线程同步的轻量级实现,不需要加锁,因此性能优于关键字 synchronized。

关键字 synchronized 可以修饰方法和代码块,关键字 volatile 只能修饰变量。

关键字 synchronized 可能发生阻塞,关键字 volatile 不会发生阻塞。

关键字 synchronized 可以保证数据的可见性和原子性,关键字 volatile 只能保证数据的可见性,不能保证数据的原子性。

关键字 synchronized 解决的是多个线程之间访问资源的同步性,关键字 volatile 解决的是变量在多个线程之间的可见性。

今日总结

多线程相关的考察可以说是面试中必问的内容,尤其是对线程原理、synchronized关键字的使用和线程常见问题的考察。

这方面的题目比较多,所以如果小伙伴们有遇到其他相关的面试题,欢迎在评论区留言提出,我会把大家提出的总结到文章内`, 欢迎小伙伴们一起评论区打卡学习!小伙伴们可也在左方加我好友一起探讨学习!

我是灰小猿,我们下期见!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Oracle-多表连接的三种方式解读
下一篇:文件和文件夹的操作——文件夹的操作
相关文章