240 发简信
IP属地:广东
  • 枚举来实现单例

    双重校验锁 实现单例: 枚举 实现单例: 上面的双重锁校验的代码很臃肿,是因为大部分代码都是在保证线程安全。为了在保证线程安全和锁粒度之间做权衡...

  • Resize,w 360,h 240
    讲讲 volatile

    volatile,它是 Java 中的一个关键字,是一种同步机制。当某个变量是共享变量,且这个变量被 volatile 修饰的,那么在修改了这个...

  • 什么是“内存可见性”问题?

    下面我们运行这段代码并分析一下可能出现的情况。 假设第 1 个线程,也就是执行 change 的线程先运行,并且运行完毕了,然后第 2 个线程开...

  • CAS 简介

    CAS 其实是我们面试中的常客,因为它是原子类的底层原理,同时也是乐观锁的原理,它的英文全称是 Compare-And-Swap,中文叫做 “比...

  • Java 线程安全特性与问题

    如果你的代码在单线程下或者在多线程下执行都能获得一样的结果,那么你的代码就是线程安全的。当进行多线程编程时,我们又会面临哪些线程安全的要求呢?又...

  • 多线程面试题集锦

    Java 代码最终是被翻译成机器码执行的,机器码才是真正可以和硬件电路交互的代码。 什么是阻塞式方法? 阻塞式方法是指程序会一直等待,在该方法完...

  • Java 线程同步与实现

    为何要使用 Java 线程同步? 当多个线程同时操作一个可共享的资源变量时,将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没...

  • Java 线程上下文切换

    进程是 操作系统 的管理单位,而线程则是 进程 的管理单位;一个进程至少包含一个执行线程。不管是在单线程还是多线程中,每个线程都有一个 程序计数...

  • Java 多线程可见性

    在现代操作系统上编写并发程序时,除了要注意线程安全性(多个线程互斥访问临界资源)以外,还要注意多线程对共享变量的可见性,而后者往往容易被人忽略。...