并发

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

http://ifeve.com/volatile/

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

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

线程

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

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

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

锁优化

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

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

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

偏向锁是什么?

锁消除是什么?

Java并发基础知识你知道多少?的更多相关文章

  1. java并发基础知识

    这几天全国都是关键时候,放假了,还是要学习啊!很久没有写博客了,最近看了一本书,有关于java并发编程的,书名叫做“java并发编程之美”,讲的很有意思,这里就做一个笔记吧! 有需要openjdk8源 ...

  2. Java 并发基础知识

    一.什么是线程和进程? 进程: 是程序的一次执行过程,是系统运行程序的基本单元(就比如打开某个应用,就是开启了一个进程),因此进程是动态的.系统运行一个程序即是一个程序从创建.运行到消亡的过程. 在 ...

  3. Java并发--基础知识

    一.为什么要用到并发 充分利用多核CPU的计算能力 方便进行业务拆分,提升应用性能 二.并发编程有哪些缺点 频繁的上下文切换 时间片是CPU分配给各个线程的时间,因为时间非常短,所以CPU不断通过切换 ...

  4. 目录-java并发基础知识

    ====================== 1.volatile原理 2.ThreadLocal的实现原理(源码级) 3.线程池模型以及核心参数 4.HashMap的实现以及jdk8的改进(源码级) ...

  5. java并发基础及原理

    java并发基础知识导图   一 java线程用法 1.1 线程使用方式 1.1.1 继承Thread类 继承Thread类的方式,无返回值,且由于java不支持多继承,继承Thread类后,无法再继 ...

  6. Java笔记(十四) 并发基础知识

    并发基础知识 一.线程的基本概念 线程表示一条单独的执行流,它有自己的程序计数器,有自己的栈. 1.创建线程 1)继承Thread Java中java.lang.Thread这个类表示线程,一个类可以 ...

  7. Java 多线程——基础知识

    java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...

  8. Java并发基础:进程和线程之由来

    转载自:http://www.cnblogs.com/dolphin0520/p/3910667.html 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程. ...

  9. 什么才是java的基础知识?

    近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...

随机推荐

  1. String对象的简单方法(特别讲解length()方法的实现。

    length() 返回字符串中的字符数 charAt(index) 返回字符串中指定位置的字符 concat(s1)    将本字符串和字符串s1连接,返回一个新字符串 toUpperCase() 返 ...

  2. jzoj5864

    本來這道題該100的,沒想到考試沒想最短路,直接跑暴力了 實際上這道題有原題跳樓機 那道題在模x的意義下統計答案 現在,我們要統計n個數的答案 30pts為提高組原題 剩下70pts,可以記dis[i ...

  3. jQuery基础笔记 事件(6)

    day56 参考:https://www.cnblogs.com/liwenzhou/p/8178806.html#autoid-1-9-6 事件 *****         1. 目前为止学过的绑定 ...

  4. MySQL远程登陆解决

    第一句:以权限用户root登录 第二句:选择mysql库 第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称) 第四句:修改host值(以通配符%的内容增加主机/IP ...

  5. 用 TensorFlow 实现 k-means 聚类代码解析

    k-means 是聚类中比较简单的一种.用这个例子说一下感受一下 TensorFlow 的强大功能和语法. 一. TensorFlow 的安装 按照官网上的步骤一步一步来即可,我使用的是 virtua ...

  6. klee 测试一个简单的正则表达式匹配函数

    函数源代码位于 klee源码 的examples/regexp文件夹下面:c程雪源码文件名为  Regexp.c First Step: 使用clang编译器将c源代码转化为llvm位码形式.如果你的 ...

  7. android动态权限获取

    android动态权限获取 Android6.0采用新的权限模型,只有在需要权限的时候,才告知用户是否授权,是在runtime时候授权,而不是在原来安装的时候 ,同时默认情况下每次在运行时打开页面时候 ...

  8. Spring Security构建Rest服务-0801-短信验证码发送

    实现短信验证码登录 开发短信验证码接口 校验短信验证码并登录 短信验证码和图片验证码开发思路类似: 1,我们访问一个controller 2,在controller里调用短信验证码生成接口生成验证码 ...

  9. unity 图片 粉碎效果 破碎效果

    效果: 点击按钮后: 这些碎片具有物理碰撞效果,下面会有隐形的支柱垫着碎片,n秒后支柱消失,碎片落下 当然你也可以控制生成的碎片,让他们从下而上一块一块地落下 插件源码: https://github ...

  10. java获得当前日期是今年的第几周,以及这周的开始日期的方法

    直接上代码,备份使用         时间戳,长整型存储             long startTime1 = 1530613938532l;             Calendar cale ...