BrightLoong's Blog


  • 首页

  • 分类

  • 归档

  • 标签

  • 搜索
close
BrightLoong's Blog

ThreadPoolExecutor源码解析

发表于 2018-06-24 | 分类于 Java | 阅读次数

ThreadPoolExecutor

一. 线程池概述

在介绍线程池之前,先说一下为什么在开发中要使用线程池,个人认为主要有一下的原因:

  • 开发中使用线程的时候,大部分线程执行的时间很短,频繁的创建、启动、销毁线程带来不必要的资源消耗。
  • 线程的创建、挂起、唤醒等操作都需要依靠CPU调度,大量的线程会频繁进行上下文切换,特别是任务执行时间短、任务数量多的情况,大量时间将花在上下文切换上,又耗时,又耗资源。
  • 无法对任务做统一的管理、分配、和监控等。
    阅读全文 »
BrightLoong's Blog

Java同步器——AQS学习

发表于 2018-06-21 | 分类于 Java | 阅读次数

AQS

一. 概述

AQS(AbstractQueuedSynchronizer),队列同步器,Java中很多同步类都是基于AQS实现的,比如:ReentrantLock、Semaphore、CountDownLatch等。

AQS提供了一个实现阻塞锁和相关同步组件的框架,这个框架实现依赖于FIFO(first-in-first-out,先进先出)的等待队列来完成获取资源线程的排队工作。AQS是绝大多数同步器的基础,它的内部使用一个 int 型的变量表示同步状态(资源状态),AQS并不维护这个状态的值,只是提供了一系列的原子更新方法,getState、setState、compareAndSetState,而由继承AQS的子类去重写特定定的方法实现对共享资源的获取和释放,而其他的比如线程排队、线程挂起、线程唤醒出队等已经在AQS中实现好了(典型的设计模式中模板方法模式的使用)。

阅读全文 »
BrightLoong's Blog

自旋锁&CLH锁&MCS锁学习记录

发表于 2018-06-17 | 分类于 Java | 阅读次数

lock

本篇文章主要记录自旋锁、CLH锁、MCS锁的学习所得。关于自旋锁和CLH锁、MCS锁,网上已经有很多内容,而且很类似;学习就是学习前人经验,理解、总结,化为己用,因此,虽然网上有很多相关的内容,我也是参考了这些内容,我依然选择记录下了自己的理解,方便自己查阅。

阅读全文 »
BrightLoong's Blog

设计模式——享元模式

发表于 2018-06-11 | 分类于 设计模式 | 阅读次数

FlyWeight

一.概述

享元模式(Flyweight Pattern) ,运用共享技术有效的支持大量的细粒度对象。换句话说,使用享元模式对相同或者类似的对象进行复用,以此来减少少相同或者类似的对象的创建数量,从而减少内存占用,提高性能。

阅读全文 »
BrightLoong's Blog

Java中CAS学习记录

发表于 2018-06-10 | 分类于 Java | 阅读次数

CAS
CAS在网上已经有数不清的文章,这里只是自己在学习过程中的一个记录,方便以后查阅。

一. 概述

Java中CAS全称Compare and Swap,也就是比较交换。在Java同步工具中,经常可以看到CAS的身影。在Doug Lea大神提供的J.U.C并发包中,可以说CAS是实现整个J.U.C包的基石。

阅读全文 »
123…8
BrightLoong

BrightLoong

Remember what should be remembered, and forget what should be forgotten.Alter what is changeable, and accept what is mutable.

36 日志
8 分类
28 标签
GitHub 简书 Email
© 2018 BrightLoong
由 Hexo 强力驱动
主题 - NexT.Pisces