• 文章
  • 从一次外卖到对oauth2.0的思考-LMLPHP
    1. 外卖并不好吃  今天下班得早,想吃顿好的,于是就点了一份外卖,过了一会儿,外卖到了,但是在小区大门被堵住了,我亲自远程开门后才能进来,又过了一会,被楼下的门禁堵住了,于是我又得为其开门,拿到
    08-11 10:42
  • CountDownLatch是个啥?-LMLPHP
     CountDownLatch一般被称作"计数器",作用大致就是数量达到了某个点之后计数结束,才能继续往下走。可以用作流程控制之类的作用,大流程分成多个子流程,然后大流程在子流程
    04-11 17:38
  • CyclicBarrier是如何成为一个"栅栏"的-LMLPHP
    1. 如何使用CyclicBarrier  在介绍其原理之前,先了解一下CyclicBarrier应该如何使用。  假设现在有这样的场景,我们需要开一个会议,需要张1、张2、张3三个人参加,会
    04-10 04:39
  • 一个普通程序员眼中的AQS-LMLPHP
    1 AQS内脏图​  在开始了解AQS之前,我们先从上帝视角看看AQS是由几个部分组成的。 ​  AQS内部维护了一个volatile修饰的资源变量,里面的所有操作都可以说跟这个变量有关系,因为
    12-11 10:56
  • 突然想看看线程池-LMLPHP
    1 为何要适用线程池  首先我们知道线程对于操作系统来说是一种珍贵的资源,像我们如果每次使用到的时候手动创建,线程执行完run()方法后又自动关闭,下次用的时候还得手动创建,这样无论对于操作系统还是
    12-03 09:39
  • Java对象的"后事处理"——垃圾回收(二)-LMLPHP
    1 先谈Finalize() finalize()方法确实可以实现一次对象的自救,但是其不确定性和昂贵的运行代价都表明这个方法的使用需要十分的慎重。那么finalize()在什么时期起作用又是如
    11-09 05:07
  • Java对象的"后事处理"——垃圾回收(一)-LMLPHP
    1、Dead Or Alive 我们都知道对象死亡的时候需要进行垃圾回收来回收这些对象从而释放空间,那么什么样的对象算是死亡呢,有哪些方法可以找出内存中的死亡对象呢?一般来说,我们可以这样认为:如
    11-06 17:57
  • 线程封闭之栈封闭和ThreadLocal-LMLPHP
    线程封闭 在多线程的环境中,我们经常使用锁来保证线程的安全,但是对于每个线程都要用的资源使用锁的话那么程序执行的效率就会受到影响,这个时候可以把这些资源变成线程封闭的形式。  1、栈封闭  
    10-23 05:27
  • Java线程状态和关闭线程的正确姿势-LMLPHP
    1、线程状态及切换 Java中的线程有六种状态,使用线程Thread内的枚举类来实现,如下,我对每个状态都进行了一定的解释。 public enum State {
    10-18 17:55
  • 指令重排序和内存屏障-LMLPHP
    一、指令重排序 指令重排序分为三种,分别为编译器优化重排序、指令级并行重排序、内存系统重排序。如图所示,后面两种为处理器级别(即为硬件层面)。 编译器优化重排序:编译器在不改变程序执行
    10-16 01:47
  • 浅谈Java的内存模型以及交互-LMLPHP
    Java内存模型 在Java中,虚拟机将运行时区域分成6中,如下图:              &n
    10-10 11:18

加载更多