并发编程面试题-内存模型
说下内存模型
定义
为什么要有内存模型
为什么要重排序,重排序在什么时候排
如何约束重排序规则
happens-before
什么是顺序一致性
CAS 实现的原理,是阻塞还是非阻塞方式?什么时候用,使用时需要考虑的问题
处理器和 Java 分别怎么保证原子操作
保证了原子性就能保证可见性吗?
final 内存语义?什么时候用,使用时需要考虑的问题
volatile 内存语义,什么时候用,用的时候需要考虑什么问题
synchronized 内存语义,什么时候用,和锁比较一下优缺点
synchronized 中涉及的锁升级流程
锁的内存语义,举例说明,加锁失败时候的处理流程
比较下 CAS 、volatile 、synchronized、Lock 区别
原子操作类底层实现机制?自增操作是怎么保证原子性的?
并发编程面试题-线程
线程的状态有哪些
如何在 Java 中实现线程?
如何在 Java 中启动一个线程?
设计线程中断的意义是什么
Java 中 interrupted 和 isInterrupted 方法的区别?
如何停止一个线程?
线程 join 方法干什么用?
有三个线程 T1,T2,T3,怎么确保它们按顺序执行?
线程的等待通知机制实现机制?
为什么应该在循环中检查等待条件?
为什么 wait 和 notify 方法要在同步块中调用?
为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?
ThreadLocal 是什么,怎么实现的
线程池是什么,提交一个任务进去,处理流程?
Executor 框架介绍
JUC 包中提供了哪些配置好的线程池,差异化是什么
什么是 FutureTask?
并发编程面试题-锁
Lock 接口提供了哪些实现类
AQS 是什么,提供了哪些方法
AQS 中独占锁和共享锁的操作流程大体描述一下
重入锁有什么好处,什么时候考虑用
读写锁有什么好处,什么时候考虑用?读锁是什么类型的锁,写锁呢?
说下读写锁里的锁降级流程,什么时候可以考虑用这个机制
park 方法是怎么实现的
锁的等待通知机制 Condition 是怎么实现的,有了线程的等待通知机制为什么还要设计 Condition?
死锁怎么产生的,如何避免
说说 Java 中有哪些锁
sleep、wait、park、Condition 都能让线程等待,有什么区别?
并发编程面试题-容器与工具
阻塞和非阻塞有什么区别,他们可以用什么方式实现
队列(Queue)提供哪些操作
阻塞队列提供了哪些获取元素的方法,有什么区别?
阻塞队列有哪些实现?为什么要分有界无界?
CountDownLatch 怎么实现的,什么时候考虑用?
CyclicBarrier 怎么实现的,什么时候考虑用?
Semaphore 怎么实现的,什么时候考虑用?
如何在两个线程间共享数据?
Exchanger 怎么实现的,什么时候考虑用?
ConcurrentHashMap 实现?
fork/join 框架是什么?

Java 并发编程面试题的更多相关文章

  1. Java并发编程面试题 Top 50 整理版

    本文在 Java线程面试题 Top 50的基础上,对部分答案进行进行了整理和补充,问题答案主要来自<Java编程思想(第四版)>,<Java并发编程实战>和一些优秀的博客,当然 ...

  2. java 并发编程面试题及答案

    1.在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon( ...

  3. Java并发编程面试题1

    package com.mozq.thread.producer2; /* * 面试题2:以下代码是否存在错误 class ThreadTest implements Runnable{ public ...

  4. Java并发编程75道面试题及答案

    1.在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon( ...

  5. Java并发编程73道面试题及答案 —— 面试稳了

    今天主要整理一下 Java 并发编程在面试中的常见问题,希望对需要的读者有用. 1.在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User). 任 ...

  6. 【Java并发编程】synchronized相关面试题总结

    目录 说说自己对于synchronized关键字的了解 synchronized关键字的三种使用 synchronized关键字的底层原理 JDK1.6之后对synchronized关键字进行的优化 ...

  7. 【Java并发编程】阿里最喜欢问的几道线程池的面试题?

    引言 上一篇文章我们有介绍过线程池的一个基本执行流程<[Java并发编程]面试必备之线程池>以及它的7个核心参数,以及每个参数的作用.以及如何去使用线程池 还留了几个小问题..建议看这篇文 ...

  8. java并发编程系列

    1.多线程的概念与使用:java笔记五:多线程的使用 2.多线程产生的问题,解决的方法, 1.引入线程池的原因:Java并发编程:线程池的使用 2.高并发情况下数据库提交:jdbc事务处理, 理解事务 ...

  9. Java并发编程笔记之ConcurrentHashMap原理探究

    在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap. HashTable是一个线程安全的类 ...

随机推荐

  1. liunx搭建配置

    预安装准备工具 yum -y install gcc gcc-c++ wget cmake 安装 软件存放目录: /lnmp/ 软件安装目录: /usr/local/ 1.下载安装PCRE wget ...

  2. node.js实现http服务器进行访问

    步骤:一.安装node;二.新建一个文件夹目录(根目录),里面再新建一个server.js文件:三.打开命令行界面,进入文件夹目录然后输入命令node server.js;四.然后就可以在浏览器上通过 ...

  3. LeetCode——230. 二叉搜索树中第K小的元素

    给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输入: root = ...

  4. 201512-1 数位之和 Java

    思路: mod 10获取最低位,除以10去掉最低位 import java.util.Scanner; public class Main { public static void main(Stri ...

  5. 吴裕雄--天生自然 JAVA开发学习:正则表达式

    import java.util.regex.*; class RegexExample1{ public static void main(String args[]){ String conten ...

  6. nouveau :failed to create kernel chanel,-22

    一:錯誤描述:今天在重啓 Ubuntu 的過程中,出現下圖的 grub 選項,系統重啓/開機之後出現以下畫面,然後選擇 Ubuntu 之後黑屏,提示錯誤:nouveau :failed to crea ...

  7. android蜂巢效果、环形菜单、Kotlin影视应用、简约时钟、查看导出App、支付宝AR扫码效果等源码

    Android精选源码 一个蜂巢布局管理器,外观帅气外,动画效果也是很赞 一个基础 UI 框架项目,实现不同布局格式的混排 仿建行app效果,一个环形菜单的布局管理器源码 基于组件化实现的一款用Kot ...

  8. PyTorch基础——机器翻译的神经网络实现

    一.介绍 内容 "基于神经网络的机器翻译"出现了"编码器+解码器+注意力"的构架,让机器翻译的准确度达到了一个新的高度.所以本次主题就是"基于深度神经 ...

  9. jupyter notebook的扩展插件

    具体安装使用,请参考 https://github.com/ipython-contrib/IPython-notebook-extensions

  10. 14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇二:知道什么是SpringCloud)

    本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一: ...