Java中高级面试必问之多线程TOP50(含答案)
以下为大家整理了今年一线大厂面试被问频率较高的多线程面试题,由于本人的见识局限性,所以可能不是很全面,也欢迎大家在后面留言补充,谢谢。
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(含答案)的更多相关文章
- java面试必问:多线程的实现和同步机制,一文帮你搞定多线程编程
前言 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种资源和状态信息,包括打开的文件.子进程和信号处理. 线 ...
- Java面试必问之Hashmap底层实现原理(JDK1.7)
1. 前言 Hashmap可以说是Java面试必问的,一般的面试题会问: Hashmap有哪些特性? Hashmap底层实现原理(get\put\resize) Hashmap怎么解决hash冲突? ...
- 一线大厂Java面试必问的2大类Tomcat调优
一.前言 最近整理了 Tomcat 调优这块,基本上面试必问,于是就花了点时间去搜集一下 Tomcat 调优都调了些什么,先记录一下调优手段,更多详细的原理和实现以后用到时候再来补充记录,下面就来介绍 ...
- linux驱动工程面试必问知识点
linux内核原理面试必问(由易到难) 简单型 1:linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些? 2:linux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化, ...
- 互联网公司面试必问的mysql题目(上)
又到了招聘的旺季,被要求准备些社招.校招的题库.(如果你是应届生,尤其是东北的某大学,绝对福利哦) 介绍:MySQL是一个关系型数据库管理系统,目前属于 Oracle 旗下产品.虽然单机性能比不上or ...
- 面试必问:JVM类加载机制详细解析
前言 在Java面试中,简历上有写JVM(Java虚拟机)相关的东西,JVM的类加载机制基本是面试必问的知识点. 类的加载和卸载 JVM是虚拟机的一种,它的指令集语言是字节码,字节码构成的文件是cla ...
- 高级测试工程师面试必问面试基础整理——python基础(一)(首发公众号:子安之路)
现在深圳市场行情,高级测试工程师因为都需要对编程语言有较高的要求,但是大部分又没有python笔试机试题,所以面试必问python基础,这里我整理一下python基本概念,陆续收集到面试中python ...
- 互联网公司面试必问的Redis题目
Redis是一个非常火的非关系型数据库,火到什么程度呢?只要是一个互联网公司都会使用到.Redis相关的问题可以说是面试必问的,下面我从个人当面试官的经验,总结几个必须要掌握的知识点. 介绍:Redi ...
- 【面试必问】python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别
[面试必问]python实例方法.类方法@classmethod.静态方法@staticmethod和属性方法@property区别 1.#类方法@classmethod,只能访问类变量,不能访问实例 ...
随机推荐
- Java的transient关键字(转)
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的同一 ...
- IconMoon图标字体制作
官网:https://icomoon.io/ 点击右上角“IconMoon APP” 点击左上角“import Icons”按钮 选中小图标 - 选择右下角“Generate Font”生成图标字体 ...
- Lua获取当前时间
更多好的文章就在 blog.haoitsoft.com,请大家多多支持! local getTime = os.date(“%c”); 其中的%c可以是以下的一种:(注意大小写) %a abbrevi ...
- Python 全栈开发六 常用模块学习
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve configparser hashlib 一. ...
- docker同步时区时间
在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,这就需要同步它们的时间,让容器时间跟宿主机时间保持一致.如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...
- centos7.x docker安装及配置,持续更新
1. 安装docker-ce [root],ce为docker社区版,免费,ee版为企业版,收费 列出所有已安装docker # rpm -qa | grep docker 删除已安装docker # ...
- React对比Vue(02 绑定属性,图片引入,数组循环等对比)
import React, { Component } from 'react'; import girl from '../assets/images/1.jpg' //这个是全局的不要this.s ...
- python No tests were found问题解决方法
由于刚刚开始用python去写测试接口框架,在写的过程中遇到No tests were found问题 原因:python中unittest框架是以Test开头的方法,所以定义方法或类不能以Test开 ...
- C++ 使用openssl库实现 DES 加密——CBC模式 && RSA加密——公加私解——私加公解
之前工作上需要用C++把软件生成的用户序列号用des加密cbc的模式,加密后为二进制,转化为十六进制,然后提供给java写的授权码管理平台. java平台会根据用户序列号,生成一个授权码,授权码是用r ...
- js字符串三个编码的区别
1.escape():编码目的为了防止字符串中特殊字符造成运算错误,主要在字符串运算中使用: 不进行编码的69个字符:A-Z.a-z.0-9.@.*._.+.-...\. 2.encodeURI(): ...