在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
多线程是Java技术中常用而且相对比较难易理解的一个知识点。而且多线程也是企业实际应用中必备的技术,因此在面试的过程中,面试者经常被问到关于多线程的问题,遇到这些问题大家应该怎么办呢?赶紧恶补一下Java面试常见关于多线程的面试题吧。

1、进程,线程之间有什么区别
简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高。线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位。同一进程中的多个线程之间可以并发执行。
2、守护线程和非守护线程有什么区别
程序运行完毕,jvm会等待非守护线程完成后关闭,但是jvm不会等待守护线程。守护线程最典型的例子就是GC线程
3、什么是多线程上下文切换
多线程的上下文切换是指CPU控制权由一个已经正在运行的线程切换到另外一个就绪并等待获取CPU执行权的线程的过程。
4、怎么检测一个线程是否持有对象监视器
Thread类提供了一个holdsLock(Object obj)方法,当且仅当对象obj的监视器被某条线程持有的时候才会返回true,注意这是一个static方法,这意味着”某条线程”指的是当前线程。
5、怎么唤醒一个阻塞的线程
如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞,可以中断线程,并且通过抛出InterruptedException来唤醒它;如果线程遇到了IO阻塞,无能为力,因为IO是操作系统实现的,Java代码并没有办法直接接触到操作系统。
6、一个线程如果出现了运行时异常怎么办?
如果这个异常没有被捕获的话,这个线程就停止执行了。另外重要的一点是:如果这个线程持有某个某个对象的监视器,那么这个对象监视器会被立即释放。
7、如何在两个线程间共享数据
通过在线程之间共享对象就可以了,然后通过wait/notify/notifyAll、await/signal/signalAll进行唤起和等待,比方说阻塞队列BlockingQueue就是为线程之间共享数据而设计的。
8、为什么要使用线程池
避免频繁地创建和销毁线程,达到线程对象的重用。另外,使用线程池还可以根据项目灵活地控制并发的数目。
通过多线程技术,可以更好的利用系统资源,充分利用CPU的空闲时间,用尽可能少的时间来对用户的要求做出相应,从而使得进程的整体运行的效率更高。对于企业而言,更高的运行效率可以大大提高自身产品的竞争力。因此多线程的应用范围非常广,对于Java开发工程师而言,必须掌握多线程相关的知识。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java程序员常见并发编程问题集锦
Java语言从第一个版本就内置了对多线程的支持,但是从事Java开发工作的人都知道,编写优质的并发代码难度非常大。相信通过大量的时间之后,会对并发编程有更多的认识,甚至可以获取更多编发编程的方案与选择。这里与大家一起探讨一下Java程序员培训中经常遇到的并发编程的问题。
7477
2019-11-25 18:53:47
数据库性能如何优化?有哪些策略?
数据库性能如何优化?有哪些策略?谈到数据库的性能优化,这无疑是一个老生常谈的话题了。首先我们可以来看看影响数据库性能的因素,不外乎就是硬件、服务器系统、数据结构和SQL语句等等方面。下面我们来逐一针对这些可以进行优化的地方,详细分析一下具体的优化策略,感兴趣的朋友赶紧看下去吧!
7077
2020-02-21 17:48:44
Spring Cloud Alibaba微服务架构学什么?为什么要学?
为什么要学Spring Cloud Alibaba?Spring Cloud Alibaba本身也是Spring Cloud的子项目是其中的一部分。 如果使用的是第一代(eureka, hystrix, zuul),在2020之后有必要把这些组件替换掉的。在业界已经广泛使用.springcloud中有部分组件不维护了。
7887
2020-06-16 10:52:42
零基础开始学Java有什么建议?
Java近些年来一直稳坐编程语言排名的前三名,最为编程语言的老大,受到了全球范围内众多编程爱好者的追捧。再加上Java语言在各个领域的开发应用和极高于其他行业的薪资待遇,使它成为许多零基础学习者的首选编程语言。为了帮助更多的编程初学者,本文就来谈谈零基础开始学Java的一些建议。
6380
2020-06-22 13:29:23
数据库服务的启动与登录学习笔记
MySQL服务器启动方式有两种,分别是通过服务的方式自动启动和手动启动的方式。本文总结了关于数据库服务的启动与登录的学习笔记,主要包括了Windows服务方式启动、DOS命令方式启动、控制台连接数据库、SQLyog图形化工具、MySQL目录结构、数据库管理系统,以及数据库管理系统、数据库和表的关系等内容。一起来详细看看吧!
6499
2020-07-13 16:25:51
