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

    转自:http://janwer.iteye.com/blog/150226 首先,说说 JSP/Servlet 中的几个编码的作用 在 JSP/Servlet 中主要有以下几种设置编码的方式: pa ...

  2. This inspection highlights chained comparisons that can be simplified.

    https://stackoverflow.com/questions/26502775/pycharm-simplify-chained-comparison In Python you can & ...

  3. subprocess.Popen stdout重定向内容实时获取

    python 打开一个新进程执行系统命令, test 执行完才能获取返回, test1 实时获取返回结果 import subprocess def test(cmd): p = subprocess ...

  4. kindle关闭自动同步

    登录网页,在我的“管理我的内容和设备”里,关闭自动同步设置

  5. leetcode中二分查找的具体应用

    给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [ ...

  6. JunOS SRX firewal Web authentication(转)

    转载自:https://srxasa.wordpress.com/2011/12/11/junos-srx-firewal-web-authentication/ JunOS SRX firewal ...

  7. PAT Basic 1020 ⽉饼 (25) [贪⼼算法]

    题目 ⽉饼是中国⼈在中秋佳节时吃的⼀种传统⻝品,不同地区有许多不同⻛味的⽉饼.现给定所有种类⽉饼的库存量.总售价.以及市场的最⼤需求量,请你计算可以获得的最⼤收益是多少. 注意:销售时允许取出⼀部分库 ...

  8. java图片上传,通过MultipartFile方式,如果后台获取null检查是否缺少步骤

    本方法基于springMvc 1.首先需要在webap下创建images 2.在springmvc.xml上引入 <bean id="multipartResolver" c ...

  9. Web 全栈大会:万维网之父的数据主权革命

    大家好,今天我和大家分享一下由万维网之父发起的一场数据主权革命.什么叫数据主权?很容易理解,现在我们的数据是把持在巨头手里的,你的微信通讯录和聊天记录都无法导出,不管是从人权角度还是从法理角度,这些数 ...

  10. Linux--Centos下搭建Git服务器

    参考:http://kimi.it/370.html   http://blog.csdn.net/wave_1102/article/details/47779401 开始直接用 yum insta ...