并发编程面试题-内存模型
说下内存模型
定义
为什么要有内存模型
为什么要重排序,重排序在什么时候排
如何约束重排序规则
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. 17.3.12--uillib模块

    1---uillib是python标准库中最常用的一个python网络应用资源访问的模块,他可以让你像访问文本一样,读取网页的内容 它的作用是访问一些不需要验证的网络资源和cookie等 uillib ...

  2. CertUtil: -hashfile 失败: 0xd00000bb (-805306181)

    使用CertUtil验证Python安装文件的时候出现了这个错误. CertUtil: -hashfile 失败: 0xd00000bb (-805306181) 代码是这样 certutil -ha ...

  3. [CTSC2008]祭祀(二分图匹配)

    没有SPJ时显然是不需要输出方案的.不需要输出方案很好做,先把边扩展(因为会往下流),然后求最大独立集,最大独立集=n-最小点覆盖,因为其是最大独立集的补集.如何求最小点覆盖呢?毕竟我写过最大权闭合子 ...

  4. iOS Reactivecocoa(RAC)知其所以然(源码分析,一篇足以)

    前言 如今RAC大行其道,对其讲解的博客也多不胜数,稍微有点经验的估计也已经对这个爽到不要不要的框架运用自如了,真正沉下来研究其实现原理的估计也不在少数,这里仅仅是记录一下自己的分析理解,更是在写这篇 ...

  5. linux 下删除乱码的文件夹

    [keke.zhaokk@gw2.mpi2.cm10 /home/keke.zhaokk] $ls -i 85082119 dataMining 85082939 ????֦???-???idޢ??? ...

  6. 云服务器上安装MSF环境

    在校园网内,禁止使用路由器之类的,所以就导致自己本地虚拟机环境出现各种各样的网络问题,解决起来过于繁琐,为此在服务器上安装MSF 0x00 安装MSF 使用Xshell等工具连上远程服务器后,首先确保 ...

  7. linux中 su 与 su - 的区别

    linux中 su 与 su - 的区别 su只是切换了用户身份,shell环境仍然是切换前用户的shell环境 su -是用户和shell环境一起切换成. 备注:1.切换了shell环境会相应的用户 ...

  8. 达梦、oracel、mysql数据库兼容

    联合表更新sql语句: 只支持mysql.oracle,不支持达梦 update to_pub_report a, to_pub_rec_process b set a.Satisfy_ID , a. ...

  9. Java复习(五)接口与多态

    5.1接口 允许创建者规定方法的基本形式:方法名.参数列表以及返回类型,但不规定方法主体. 也可以包含基本数据类型的数据成员,但他们都默认为static和final 声明格式为 [接口修饰符]inte ...

  10. itop4412开发版-安卓系统卸载默认apk使用文档

    itop4412开发版的安卓系统默认不是最高权限,可以看见后面最后一个是$符号,如下图 1,所以 想我们需要进入 root 权限,可以看见后面最后一个是#符号,如下图所示.在这个变换中只需 要在超级终 ...