0%

AbstractQueueSynchroinzer。提供了一个锁框架。内部有一个Integer类型state和一个双向队列。封装了线程锁请求入FIFO双向队列入队出队以及线程挂起唤醒等过程,实现线程安全。

Read more »

简介

Synchronized是Java的一个关键字,通过它可以实现线程安全。

Read more »

CAS

Compare And Swap:通过原子的进行比较交换操作保证数据安全。

具体流程:每次更新前先判断当前值是否相等,如果相等就进行替换。否则自旋等待锁释放。

存在问题:ABA问题,就是存在另外线程将值改回之前的值,此时另一个不该获取锁的线程可以拿到锁

如何避免:通过对信息加版本号,例如:使用AtomicStampedReference作为版本信息保证不会回退旧数据

Read more »

什么是死锁

多线程情况下,线程互相拥有对方需要的资源从而相互等待资源释放,从而导致程序无法继续进行造成死锁。

Read more »

BIO -> NIO

BIO: Blocking IO 阻塞IO,按字节进行处理

NIO:No-Blocking IO(New-IO),非阻塞。按缓冲区处理

Read more »

语言特性

  • 面向对象(封装、继承、多态)
  • 跨平台
  • 多线程支持
  • 编译与解释执行(class文件编译与JIT即时编译(编译为机器码),JVM执行时解释执行)
Read more »

面试中对于项目考察,通常会询问项目中的亮点已经难点。这其实是考察对工作熟悉以及发现并解决问题能力,还有总结归纳的能力。

Read more »