在多线程使用过程中,遇到多线程共同竞争临界资源时,一般使用同步锁解决,哪个线程能抢到同步锁,哪个线程能够进入临界区。
理解Volatile与ThreadLocal
在多线程使用过程中,有一些变量可见性问题,一般使用Volatile与ThreadLocal实现。
理解sleep/wait/notify/countdownlatch/join方法等
在多线程使用过程中,有一些常见的使用场景,例如线程等待与唤醒,线程同步等等,这些使用场景需要使用不同的方法组合实现。
理解run与start方法
在多线程使用过程中run方法与start方法是两个重要方法,那么这两个方法有什么区别,如何理解这两个方法呢?
内存屏障
内存屏障,也称内存栅栏,内存栅障,屏障指令等,是一类同步屏障指令,它使得CPU 或编译器在对内存进行操作的时候, 严格按照一定的顺序来执行, 也就是说在memory barrier 之前的指令和memory barrier之后的指令不会由于系统优化等原因而导致乱序。
Java集合(一)
集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在java.util.concurrent包下提供了一些多线程支持的集合类。
Java锁机制
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。
Happens-Before规则
happens-before 规则通常对应于多个编译器重排序规则和处理器重排序规则。
Java四种引用类型
Java语言中万物皆对象,而在编程过程中是通过引用来操作对象的,引用可以简单视为对象在内存空间中的地址,因此可以通过引用找到并操作对象。
hexo添加algolia搜索
Hexo 默认本地搜索不够美观,功能单一,而Algolia搜索功能强大。