并发编程面试题-内存模型
说下内存模型
定义
为什么要有内存模型
为什么要重排序,重排序在什么时候排
如何约束重排序规则
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. Linux文件目录常用命令

    查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 > 和 >& ...

  2. Cannot find tomcat目录/bin/setclasspath.sh This file is needed to run this program

    首先如果直接使用 root 用户来启动 tomcat 的话,是可以正常启动的. 但是我们在 Linux 中使用普通用户启动 tomcat 报了如下错误 Cannot find /developer/a ...

  3. java数据库连接池比较

    dbcp dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧.这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有.这个连接 ...

  4. 对于centos的运用ssh远程连接

    1,首先安装ssh服务器 $yum install openssh-server 2,记录你当前centos的ip地址 $ifconfig 3,再在windows里面安装putty 4安装完成后, 在 ...

  5. PAT Basic 1047 编程团体赛(20) [Hash散列]

    题目 编程团体赛的规则为:每个参赛队由若⼲队员组成:所有队员独⽴⽐赛:参赛队的成绩为所有队员的成绩和:成绩最⾼的队获胜.现给定所有队员的⽐赛成绩,请你编写程序找出冠军队. 输⼊格式: 输⼊第⼀⾏给出⼀ ...

  6. 编程基础-servlet1

    1.Servelet是什么 sevlet是Server与Applet 的缩写,即服务端小程序.Sun公司提供的开发动态web资源的技术. servelet本质是java类,但遵循Servlet规范,没 ...

  7. 记一次修复Windows

    打开了一堆网页和应用,然后桌面不见了.. 于是很着急..就按各种快捷键..Win+R挂了.. 本来以为要reboot(机房电脑) , 然后问老师发现会格式化 然后发现Ctrl+Alt+Delete还存 ...

  8. NOIp2018RP++

    NOIp2018RP++ Rp=0 while True: Rp+=1; print (Rp)

  9. Python笔记_第三篇_面向对象_8.对象属性和类属性及其动态添加属性和方法

    1. 对象属性和类属性. 我们之前接触到,在类中,我们一般都是通过构造函数的方式去写一些类的相关属性.在第一次介绍类的时候我们把一些属性写到构造函数外面并没有用到构造函数,其实当时在写的时候,就是在给 ...

  10. Gson使用指南(二)

    注:此系列基于Gson 2.4. 一.Gson的流式反序列化 自动方式 常用的重载方法: Gson.toJson(Object); Gson.fromJson(Reader,Class); Gson. ...