Java并发基础知识你知道多少?
并发
https://blog.csdn.net/justloveyou_/article/details/53672005
- 并发的三个特性是什么?
 - 什么是指令重排序?
 - 单线程的指令重排序靠什么保证正确的结果?
 - 原子性操作有哪些?
 - 赋值操作都属于原子性操作吗?
 - sychronized和lock如何保证可见性?
 
synchronized
https://www.cnblogs.com/paddix/p/5367116.html
https://blog.csdn.net/justloveyou_/article/details/54381099
- synchronized 实现原理
 - 为什么一般不用string作为锁
 
内存模型
https://blog.csdn.net/justloveyou_/article/details/53672005
- 什么是缓存一致性问题?
 - 缓存一致性协议原理?
 - 线程工作内存与主存同步的时机?
 - println()为什么和volatile,sychronize一样都可以做到上述同步?
 
volatile
https://blog.csdn.net/justloveyou_/article/details/53672005
- 保证了并发的哪个特性?
 - 作用?
 - 原理?
 - 应用场景?
 - 变量多个线程读写原则是什么?
 - volatile可以保证原子性吗?
 - volatile允许指令重排序吗?
 
threadLocal
https://blog.csdn.net/justloveyou_/article/details/54613085
https://slnddd.iteye.com/blog/2373374
https://blog.csdn.net/u013735511/article/details/70416597
- 什么是ThreadLocal
 - 原理是什么?
 - ThreadLocalMap的key和value分别是什么?
 - 应用场景?
 - 使用步骤?
 - Thread中使用Looper与Thread关联
 - Thread和局部变量的区别?
 
ThreadLocal内存泄漏
https://blog.csdn.net/justloveyou_/article/details/78313167
为什么threadLocal会内存泄漏?
怎么解决?
锁
http://ifeve.com/java-synchronized/
- 什么是CAS?
 - 对于同步方法,同步静态方法,同步对象,锁的对象分别是什么?
 - jvm角度分析锁同步的原理。用什么方法,取得什么的所有权?
 - 锁的四种状态或者类型?
 - 什么是自旋和膨胀?
 
偏向锁
- 竞争机制?
 - 获得和撤销流程?
 - 使用场景?
 
轻量级锁
- 竞争机制?
 - 获得和撤销流程?
 - 使用场景?
 
Lock
相比于synchronized的三个优点?
相比于synchronized的两个要注意的地方?
使用locks时如何处理异常?
trylock()的使用?
lockInterruptibly()和synchronized的interrupt()的区别?
lock变量作为线程局部变量有用吗?
tryLock()和tryLock(time), lockInterruptibly()的区别?
如果lock()或者lockInterruptibly()放在try{}里面会怎么样?
ReentrantLock继承了什么接口?
ReentrantReadWriteLock使用方法?
一个线程占了读锁,另一个线程申请写锁会怎么样?
一个线程占了写锁,另一个线程申请读锁会怎么样?
ReentrantReadWriteLock和synchronized的区别?
什么是公平锁和非公平锁?
线程
- 线程的五个状态调度图?
 - blocked的三种情况?
 - run和start区别?
 
https://blog.csdn.net/justloveyou_/article/details/54347954
- 什么是线程的上下文切换?
 - 上下文切换时通常需要保存哪些东西?
 
notify, wait, yield, join
- wait是使哪个线程等待?
 - notify和wait为什么定义在object中而不是thread中?
 - yield让出的是什么?
 - yield和wait的区别?
 - join的作用?
 - 为什么son.join()是让主线程等待?
 - wait yield, sleep会释放锁码?
 
interrupt
Java多线程系列--“基础篇”09之 interrupt()和线程终止方式
- 作用?
 - interrupt阻塞状态线程过程?
 - 如何中止while(true)的线程?
 - interrupt运行状态线程过程?
 - interrupted()和isinterrupted()区别?
 
守护线程定义?
线程池 ThreadPoolExecutor
Java - "JUC线程池" ThreadPoolExecutor原理解析
- 类结构?
 - worker作用?
 - blockingQueue作用?
 - 四种blockingQueue区别?
 - mainlock作用?
 - corePool和maxPool处理逻辑?
 - handler作用?
 - 线程池的五个状态?
 - stop和shutdown区别?
 - 如何合理地配置线程池
 
线程拒绝策略
http://www.cnblogs.com/skywang12345/p/3512947.html#a21
- abort, discard, discardoldest, callerruns区别
 - 适用场景?
 
callable和future
Java多线程系列--“JUC线程池”06之 Callable和Future
- callable作用与用法?
 - future作用与用法?
 - callable与runable区别?
 - futuretask与他们的关系?
 - 他们的源码实现?
 
CAS是什么?
https://blog.csdn.net/justloveyou_/article/details/78313167
什么是ABA问题?怎么解决?
锁优化
https://blog.csdn.net/justloveyou_/article/details/78313167
自旋是什么?为什么要自旋?
锁粗化是什么?为什么要这样?
偏向锁是什么?
锁消除是什么?
Java并发基础知识你知道多少?的更多相关文章
- java并发基础知识
		
这几天全国都是关键时候,放假了,还是要学习啊!很久没有写博客了,最近看了一本书,有关于java并发编程的,书名叫做“java并发编程之美”,讲的很有意思,这里就做一个笔记吧! 有需要openjdk8源 ...
 - Java 并发基础知识
		
一.什么是线程和进程? 进程: 是程序的一次执行过程,是系统运行程序的基本单元(就比如打开某个应用,就是开启了一个进程),因此进程是动态的.系统运行一个程序即是一个程序从创建.运行到消亡的过程. 在 ...
 - Java并发--基础知识
		
一.为什么要用到并发 充分利用多核CPU的计算能力 方便进行业务拆分,提升应用性能 二.并发编程有哪些缺点 频繁的上下文切换 时间片是CPU分配给各个线程的时间,因为时间非常短,所以CPU不断通过切换 ...
 - 目录-java并发基础知识
		
====================== 1.volatile原理 2.ThreadLocal的实现原理(源码级) 3.线程池模型以及核心参数 4.HashMap的实现以及jdk8的改进(源码级) ...
 - java并发基础及原理
		
java并发基础知识导图 一 java线程用法 1.1 线程使用方式 1.1.1 继承Thread类 继承Thread类的方式,无返回值,且由于java不支持多继承,继承Thread类后,无法再继 ...
 - Java笔记(十四) 并发基础知识
		
并发基础知识 一.线程的基本概念 线程表示一条单独的执行流,它有自己的程序计数器,有自己的栈. 1.创建线程 1)继承Thread Java中java.lang.Thread这个类表示线程,一个类可以 ...
 - Java 多线程——基础知识
		
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
 - Java并发基础:进程和线程之由来
		
转载自:http://www.cnblogs.com/dolphin0520/p/3910667.html 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程. ...
 - 什么才是java的基础知识?
		
近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...
 
随机推荐
- Cordova - XCode10编译热更新插件错误解决方法!
			
操作系统:OSX10.14 XCode:10.1 热更新插件:https://github.com/nordnet/cordova-hot-code-push 这个热更新插件,在安卓下编译,没有问题, ...
 - iOS-电池图标【结合贝塞尔曲线控制电量显示】
			
基于UIView类:WKJBatteryView WKJBatteryView.h #import <UIKit/UIKit.h> @interface WKJBatteryView : ...
 - 【BZOJ2127】happiness  最小割
			
题目大意:有一个$n\times m$的矩阵,矩阵的每个位置上有一个同学,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦 ...
 - SSH远程连接服务
			
一.SSH 原理图 二.SSH 原理描述 2.1:什么是SSH SSH是专门为了远程登录会话和其他网络服务提供的安全性协议,使用SSH协议可以有效的防止远程连接会话的时候出现信息泄密,在数据传输的时候 ...
 - 支付宝小程序自定义弹窗插件|支付宝dialog插件|model插件
			
支付宝小程序自定义弹窗组件wcPop|小程序自定义对话框|actionSheet弹窗模板 支付宝小程序官方提供的alert提示框.dialog对话框.model弹窗功能比较有限,有些都不能随意自定义修 ...
 - 【Azure】Publish Error of "%(TargetOSFamily.Identity)" that evaluates to "" instead of a number
			
在向Azure部署程序的时候,出现如下错误: A numeric comparison was attempted on "%(TargetOSFamily.Identity)" ...
 - (转)Python 字符串
			
原文:http://www.runoob.com/python/python-strings.html
 - python代码位置引发的错误
			
觉得python对代码位置的要求简直是变态,缩进引发的错误我以前在博客里讲过了,如果不懂可以看看我以前的博客,今天又遇到了一个代码位置所引发的错误,现在给大家分享一下: 我想要打印出来一个5*5的实心 ...
 - win7安装docker报错:error during connect: Get http ..... the system cannot find the file specified
			
因为是win7 所以使用了官方网站的dockertoolbox 安装一路顺利,结果启动就报上面的错误, 因为安装包附带安装了virtualbox 上面的错误后来排查出来是 virtualboox的问题 ...
 - Eclipse-离线安装Memory Anlysis Tool
			
Eclipse版本:Version: Mars.2 Release (4.5.2) 1.从官网下载MAT Memory Anlysis Tool http://www.eclipse.org/mat/ ...