多线程是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面试常见关于多线程的面试题相关推荐

  1. java 多异步调用_java 异步调用与多线程

    异步与多线程的区别 一.异步和多线程有什么区别?其实,异步是目的,而多 线程是实现这个目的的方法.异步是说,A发起一个操作后(一般都是比较耗时的操作,如果不耗时的操作 就没有必要异步了),可以继续自顾 ...

  2. java面试的基本问题_java面试常见基础问题之一

    1 什么是项目 在既定的资源和要求的约束下,为实现某种目的而相互联系的一次性工作任务.项目可以创造:1.一个产品:2.一种服务或提供服务的能力:3.对现有产品线或服务的改进:4.一种成果. 项目的两大 ...

  3. java面试题标签_java面试笔试题 (WEB)

    1. jsp有哪些内置对象?作用分别是什么? 一共有9个内置对象 pageContext javax.servlet.jsp.pageContext request javax.servlet.htt ...

  4. Java改知能机_Java 面试突击之 Java 并发知识基础 进阶考点全解析

    版权说明:本文内容根据 github 开源项目整理所得 项目地址:https://github.com/Snailclimb/JavaGuide​github.com 一.基础 什么是线程和进程? 何 ...

  5. java 队列已满_JAVA中常见的阻塞队列详解

    在之前的线程池的介绍中我们看到了很多阻塞队列,这篇文章我们主要来说说阻塞队列的事. 阻塞队列也就是 BlockingQueue ,这个类是一个接 口,同时继承了 Queue 接口,这两个接口都是在JD ...

  6. Java的后缀分类_java数据类型扩展及相应的面试题

    # java数据类型扩展及面试题 ### 代码片段如下: ``` java //整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x int i = 10; int i2 = 010;//八进 ...

  7. java中queue排序_Java中常见的排序算法有哪些?---选择排序

    排序相关的的基本概念 排序: 将一组杂乱无章的数据按一定的规律顺次排列起来. 数据表( data list): 它是待排序数据对象的有限集合. 排序码(key):通常数据对象有多个属性域, 即多个数据 ...

  8. 小红书java算法难吗_Java面试系列之记一次小红书之旅

    一面一面面试官看着二十七八岁,文质彬彬,这哪里是写代码的,头发都飘起来了好么.上来就干项目,由于大家的项目都不太一样,所以对于项目部分我就说说我面试的时候经常遇到的问题描述下项目一口是吃不了胖子的,描 ...

  9. python基础笔试面试题_python基础面试常见题

    Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途径学习的Python? 通过自学,包括网上查看一些视频,购买一些相关专业的书籍. 3.Pyt ...

最新文章

  1. 2.合并区间(LeetCode第56题)
  2. 用javascript实现一门编程语言-字符输入流
  3. OpenSSL 再爆严重安全漏洞 —— CCS 注入
  4. [案例分享]科大云炬工作室开发的安卓APP项目
  5. Pytorch:使用Alexnet网络实现CIFAR10分类
  6. django 业务逻辑写在view里吗?_Python Web框架Django简介
  7. c语言求满足不等式的最小值,高手请进,请教一道简单的c语言题!
  8. python文件IO中的二进制格式与文本格式
  9. 第12期《啊哈算法 PDF版本》
  10. UE4学习日记(十一)实现简单的御剑(板)飞行功能
  11. Fiddler使用之工具栏介绍
  12. WinForm自制水晶按钮
  13. php源码怎样修改logo,dedecms网站改logo怎么操作
  14. 芯片和集成电路的区别和联系
  15. 在智能制造背景下,传统工厂何去何从?
  16. java 随机字母数字_Java生成字母和数字组成的随机字符串
  17. Javascript实现扫雷游戏
  18. flutter 阿里 号码认证_我对Flutter的第一次失望
  19. 波的相关参数概念整理
  20. 建立完善的员工晋升机制_建立合理的晋升机制,给员工发展的空间

热门文章

  1. python经典好书-新手Python入门经典书籍推荐
  2. python循环语句-python循环语句
  3. python好学吗 老程序员-使用 Python 会降低程序员的编程能力吗?
  4. 怎么自学python 知乎-你是如何自学 Python 的?
  5. python编程课程上课有用吗-Python培训网络课堂|Python编程软件有哪些功能?
  6. python在线读-Python测试之道
  7. python实训项目-求一份Python的实验报告+源代码,项目内容不限
  8. 这是我的第一个python程序怎么打-我的第一个Python程序(运行)
  9. python入门练习题-Python入门36道经典练习题
  10. spring中IOC设计与实现