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,只能访问类变量,不能访问实例 ...
随机推荐
- 将中文字符串分割为数组 解决str_split中文乱码php
首先来介绍str_split()这个函数: 它的作用是将字符串分割为数组: 例如: $str='abcde';str_plite($str); 打印结果如下:Array( [0] => a ...
- [Java in NetBeans] Lesson 01. Java Programming Basics
这个课程的参考视频在youtube. 主要学到的知识点有: Create new project, choose Java Application. one .jar file/ package(.j ...
- centos5 升级到centos6
From http://www.linuxquestions.org/questions/linux-newbie-8/yum-update-error-4175476250/ 对开发组的一个服务器执 ...
- iOS UI基础 - 20 UITextField
//找到已经创建好的UITextField UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(, , RFS ...
- Could not find result map java.lang.Integer] with root cause
错误的代码 <select id="selectpGoodsInfoIdByGoodsId" parameterType="java.lang.Integer&qu ...
- 笔记 : win8系统中的VM虚拟机的Ubuntu搭建samba服务
1. 环境准备 (此处使用root超级管理员帐户,执行命令时不用加sudo, 普通帐户需要前面加sudo): (1)安装好Ubutun虚拟系统后,Ubuntu 的软件源配置文件是 /etc/apt/ ...
- hive中安装hive_utils模块
1. 因为在linux部署的python 3.6 在安装模块的时候遇到了许多问题,所以使用linux中的python3.6环境 2. 首先使用pip安装 hive_utils 模块sudo pip i ...
- css实现文字太长,显示省略号
/*显示为省略号*/ overflow:hidden;/*隐藏*/ white-space:nowrap;/*文本不进行换行*/text-overflow:ellipsis;/*省略号*/ /*强制 ...
- 导入javax.servlet。伺服登记无法解决:The import javax.servlet.MultipartConfigElement cannot be resolved
解决办法:
- Java多线程-----单例模式在多线程中的使用用问题
1.饿汉模式(立即加载模式)与多线程 不管需不需要用到实例都要去创建实例,即在类产生的时候就创建好实例 package com.thread; /** * 饿汉模式 * * @author yy ...