以下为大家整理了今年一线大厂面试被问频率较高的多线程面试题,由于本人的见识局限性,所以可能不是很全面,也欢迎大家在后面留言补充,谢谢。

1、什么是线程?

2、什么是线程安全和线程不安全?

3、什么是自旋锁?

4、什么是Java内存模型?

5、什么是CAS?

6、什么是乐观锁和悲观锁?

7、什么是AQS?

8、什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?

9、什么是Executors框架?

10、什么是阻塞队列?如何使用阻塞队列来实现生产者-消费者模型?

11、什么是Callable和Future?

12、什么是FutureTask?

13、什么是同步容器和并发容器的实现?

14、什么是多线程?优缺点?

15、什么是多线程的上下文切换?

16、ThreadLocal的设计理念与作用?

17、ThreadPool(线程池)用法与优势?

18、Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。

19、synchronized和ReentrantLock的区别?

20、Semaphore有什么作用?

21、Java Concurrency  API中的Lock接口(Lock interface)是什么?对比同步它有什么优势?

22、Hashtable的size()方法中明明只有一条语句”return count”,为什么还要做同步?

23、ConcurrentHashMap的并发度是什么?

24、ReentrantReadWriteLock读写锁的使用?

25、CyclicBarrier和CountDownLatch的用法及区别?

26、LockSupport工具?

27、Condition接口及其实现原理?

28、Fork/Join框架的理解?

29、wait()和sleep()的区别?

30、线程的五个状态(五种状态,创建、就绪、运行、阻塞和死亡)?

31、start()方法和run()方法的区别?

32、Runnable接口和Callable接口的区别?

33、volatile关键字的作用?

34、Java中如何获取到线程dump文件?

35、线程和进程有什么区别?

36、线程实现的方式有几种(四种)?

37、高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?

38、如果你提交任务时,线程池队列已满,这时会发生什么?

39、锁的等级:方法锁、对象锁、类锁?

40、如果同步块内的线程抛出异常会发生什么?

41、并发编程(concurrency)并行编程(parallellism)有什么区别?

42、如何保证多线程下 i++ 结果正确?

43、一个线程如果出现了运行时异常会怎么样?

44、如何在两个线程之间共享数据?

45、生产者消费者模型的作用是什么?

46、怎么唤醒一个阻塞的线程?

47、Java中用到的线程调度算法是什么

48、单例模式的线程安全性?

49、线程类的构造方法、静态块是被哪个线程调用的?

50、同步方法和同步块,哪个是更好的选择?


关注右侧微信公众号回复 "多线程" 获取全部面试题整理及参考答案。

Java中高级面试必问之多线程TOP50(含答案)的更多相关文章

  1. java面试必问:多线程的实现和同步机制,一文帮你搞定多线程编程

    前言 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种资源和状态信息,包括打开的文件.子进程和信号处理. 线 ...

  2. Java面试必问之Hashmap底层实现原理(JDK1.7)

    1. 前言 Hashmap可以说是Java面试必问的,一般的面试题会问: Hashmap有哪些特性? Hashmap底层实现原理(get\put\resize) Hashmap怎么解决hash冲突? ...

  3. 一线大厂Java面试必问的2大类Tomcat调优

    一.前言 最近整理了 Tomcat 调优这块,基本上面试必问,于是就花了点时间去搜集一下 Tomcat 调优都调了些什么,先记录一下调优手段,更多详细的原理和实现以后用到时候再来补充记录,下面就来介绍 ...

  4. linux驱动工程面试必问知识点

    linux内核原理面试必问(由易到难) 简单型 1:linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些? 2:linux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化, ...

  5. 互联网公司面试必问的mysql题目(上)

    又到了招聘的旺季,被要求准备些社招.校招的题库.(如果你是应届生,尤其是东北的某大学,绝对福利哦) 介绍:MySQL是一个关系型数据库管理系统,目前属于 Oracle 旗下产品.虽然单机性能比不上or ...

  6. 面试必问:JVM类加载机制详细解析

    前言 在Java面试中,简历上有写JVM(Java虚拟机)相关的东西,JVM的类加载机制基本是面试必问的知识点. 类的加载和卸载 JVM是虚拟机的一种,它的指令集语言是字节码,字节码构成的文件是cla ...

  7. 高级测试工程师面试必问面试基础整理——python基础(一)(首发公众号:子安之路)

    现在深圳市场行情,高级测试工程师因为都需要对编程语言有较高的要求,但是大部分又没有python笔试机试题,所以面试必问python基础,这里我整理一下python基本概念,陆续收集到面试中python ...

  8. 互联网公司面试必问的Redis题目

    Redis是一个非常火的非关系型数据库,火到什么程度呢?只要是一个互联网公司都会使用到.Redis相关的问题可以说是面试必问的,下面我从个人当面试官的经验,总结几个必须要掌握的知识点. 介绍:Redi ...

  9. 【面试必问】python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别

    [面试必问]python实例方法.类方法@classmethod.静态方法@staticmethod和属性方法@property区别 1.#类方法@classmethod,只能访问类变量,不能访问实例 ...

随机推荐

  1. Vuex 页面刷新后store保存的数据会丢失 取cookie值

    在store.js中 export default new vuex.Store({ // 首先声明一个状态 state state:{ pcid: '', postList: [], } //更新状 ...

  2. 将c语言的结构体定义变成对应的golang语言的结构体定义,并将golang语言结构体变量的指针传递给c语言,cast C struct to Go struct

    https://groups.google.com/forum/#!topic/golang-nuts/JkvR4dQy9t4 https://golang.org/misc/cgo/gmp/gmp. ...

  3. function module 之间调用

    1: 在一个function group 中定义一个function module 2:在另外一个module中调用该module "调用其它function 要用 单引号 引着. 一个mo ...

  4. MRJob 极速入门教程,使用Python玩转Hadoop

    想要Hadoop乖巧地运行Python程序,学习mrjob可能是最直接.最简单的方法了,你甚至都不要按安装部署Hadoop集群.mrjob拥有很多优秀的特性比如: 支持多步骤的MapReduce任务工 ...

  5. SDWebImage代码赏析

    过NSOperationQueue来控制 为了保护变量,使用大量了sychronized 读的时候使用了dispatch_sync dispatch_sync(sself.barrierQueue, ...

  6. Css3动画属性总汇

    http://css3lib.alloyteam.com/uilib/animation/demo1/#cta Css3动画属性总汇 Stay hungry. Stay foolish. Attent ...

  7. model.addattribute()的作用

    1.往前台传数据,可以传对象,可以传List,通过el表达式 ${}可以获取到, 类似于request.setAttribute("sts",sts)效果一样. 2.@ModelA ...

  8. 独立出properties的mybatis连接池

    jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/java505?useSSL=true&chara ...

  9. 强力上攻后,在缓解期结束时,MACD将死叉,的后续情形

    强力上攻后,在缓解期结束时,MACD将死叉,的后续情形

  10. activiti 项目变更控制器

    package com.xinwei.process.controller; import java.util.Calendar; import java.util.HashMap; import j ...