Java并发基础知识你知道多少? Java多线程系列--“基础篇”01之 基本概念 Java多线程系列--“基础篇”09之 interrupt()和线程终止方式 Java多线程系列--“JUC线程池”

并发html

https://blog.csdn.net/justloveyou_/article/details/53672005java

  • 并发的三个特性是什么?
  • 什么是指令重排序?
  • 单线程的指令重排序靠什么保证正确的结果?
  • 原子性操做有哪些?
  • 赋值操做都属于原子性操做吗?
  • sychronized和lock如何保证可见性?

synchronized缓存

https://www.cnblogs.com/paddix/p/5367116.html多线程

https://blog.csdn.net/justloveyou_/article/details/54381099并发

  • synchronized 实现原理
  • 为何通常不用string做为锁

内存模型jvm

https://blog.csdn.net/justloveyou_/article/details/53672005oop

  • 什么是缓存一致性问题?
  • 缓存一致性协议原理?
  • 线程工做内存与主存同步的时机?
  • println()为何和volatile,sychronize同样均可以作到上述同步?

volatilepost

https://blog.csdn.net/justloveyou_/article/details/53672005优化

http://ifeve.com/volatile/url

  • 保证了并发的哪一个特性?
  • 做用?
  • 原理?
  • 应用场景?
  • 变量多个线程读写原则是什么?
  • 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内存泄漏

http://www.javashuo.com/article/p-gnmfimao-bo.html

为何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的区别?

什么是公平锁和非公平锁?

 

线程

Java多线程系列--“基础篇”01之 基本概念

  • 线程的五个状态调度图?
  • blocked的三种状况?
  • run和start区别?

 https://blog.csdn.net/justloveyou_/article/details/54347954

  • 什么是线程的上下文切换?
  • 上下文切换时一般须要保存哪些东西?

 

notify, wait, yield, join

java - 线程等待与唤醒

Java - 线程让步和休眠

Java - 线程Join与interrupt

  • wait是使哪一个线程等待?
  • notify和wait为何定义在object中而不是thread中?
  • yield让出的是什么?
  • yield和wait的区别?
  • join的做用?
  • 为何son.join()是让主线程等待?
  • wait yield, sleep会释放锁码?

interrupt

Java多线程系列--“基础篇”09之 interrupt()和线程终止方式

  • 做用?
  • interrupt阻塞状态线程过程?
  • 如何停止while(true)的线程?
  • interrupt运行状态线程过程?
  • interrupted()和isinterrupted()区别?

守护线程定义?

Java - 线程优先级和守护线程

 

线程池 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是什么?

http://www.javashuo.com/article/p-gnmfimao-bo.html

什么是ABA问题?怎么解决?

 

锁优化

http://www.javashuo.com/article/p-gnmfimao-bo.html

自旋是什么?为何要自旋?

锁粗化是什么?为何要这样?

偏向锁是什么?

锁消除是什么?

相关文章
相关标签/搜索