AQS 原理剖析 Posted on 2020-08-25 | In Java AQS即AbstractQueuedSynchronizer类称作队列同步器,是构建其他同步器的一个重要的基础框架,同步器自身是没有实现任何同步接口。它是通过控制一个int类型的state变量来表示同步状态,使用一个内置的FIFO(先进先出)队列来构建工作队列操作。 同步器定义有两种资源共享方式:Exclusive(独占式)和Share(共享式)的获取同步状态。 独占式:一个时间点只能执行一个线程。共享式:一个时间点可多个线程同时执行。 Read more »
synchronized 原理知多少 Posted on 2020-06-27 | In Java synchronized是 Java 编程中的一个重要的关键字,也是多线程编程中不可或缺的一员。本文就对它的使用和锁的一些重要概念进行分析。 使用及原理synchronized 是一个重量级锁,它主要实现同步操作,在 Java 对象锁中有三种使用方式: 普通方法中使用,锁是当前实例对象。 静态方法中使用,锁是当前类的对象。 代码块中使用,锁是代码代码块中配置的对象。 Read more »
MongoDB 常用查询操作 Posted on 2020-06-14 | In MongoDB MongoDB 查询操作可实现大部分关系型数据库的常用查询操作,本文对 MongoDB 常用查询进行讲解。 Read more »
MongoDB 安装及文档的基本操作 Posted on 2020-05-31 | In MongoDB 前言MongoDB 是一个基于分布式文件存储的半结构化的非关系型数据库。在海量数据中,可以较高性能的处理存取操作。它是以 BSON 格式进行数据存储(类似 JSON 格式,但类型更为丰富),因此对于复杂的数据类型,可以较轻松的保存和处理。同时,在非关系型数据库阵容中,相比其他数据库产品,它拥有更丰富的功能,并且与关系型数据库类型,所以对于新手使用也能快速上手。 Read more »
Java 多线程中使用 JDK 自带工具类实现计数器 Posted on 2020-05-17 | In Java 前言在实际开发过程中,经常遇到需要多线程并行的业务,最后需要进行将各个线程完成的任务进行汇总,但主线程一般会早于子线程结束,如果要想等各个子线程完成后再继续运行主线程,这时就需要对各个线程是否执行完成进行标识,JDK 并发包中就给开发者提供了几个不错的使用工具类。 接下来将通过 Thread#join 方法以及 CountDownLatch、CyclicBarrier 类进行上面案例方案的分析。 Read more »