摘要: 1 引用计数法 给一个对象添加一个引用计数器,每当有一个地方引用时,计数器加1,当引用失效的时候,计数器减去1.当计数器为0的时候,表示对象不可能再被使用。此时表明该对象可以被回收。 缺点:难以对象之间互相引用。 package com.dusk.service.jvm; /** * @Authgo 阅读全文
posted @ 2018-09-12 20:19 大佛拈花-GoSaint 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 一概述 谈论到并发,不得不谈论锁,而谈论到锁而言,又离不开ReentrantLock.ReentrantLock是锁锁的一种实现方式,对于锁而言,我们这里就需要讨论到AQS,即上面的AbstractQueuedLongSynchronize。我直接翻译过来就叫做抽象队列同步器。它规定了多线程访问并发 阅读全文
posted @ 2018-09-02 00:33 大佛拈花-GoSaint 阅读(1415) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章中说过使用thread.join()方法、newSingleThreadExecutor单线程池来控制线程执行顺序。在文章的末尾我提出了一种构想,可否使用经典的生产者和消费者模型来控制执行顺序。在本文中,我将使用CountDownLatch来解决这个问题。 上图是countDownLat 阅读全文
posted @ 2018-08-29 23:27 大佛拈花-GoSaint 阅读(1260) 评论(0) 推荐(0) 编辑
摘要: R君今天曾问我:假设现在有三个线程T1、T2、T3。那么他希望T1、T2、T3这三个线程按照顺序去执行,该怎么去完成。我本能的反应是这个好办,使用thread.jon()方法完全可以实现。接着他又问,有没有其它的实现方式,这时我在想,线程的优先级呢,为这三个线程设置优先级,但是我随之否定了自己的这个 阅读全文
posted @ 2018-08-29 23:24 大佛拈花-GoSaint 阅读(4656) 评论(0) 推荐(0) 编辑
摘要: 并发之Striped64(累加器) 对于该类的实现思想: Striped64是在java8中添加用来支持累加器的并发组件,它可以在并发环境下使用来做某种计数,Striped64的设计思路是在竞争激烈的时候尽量分散竞争,在实现上,Striped64维护了一个base Count和一个Cell数组,计数 阅读全文
posted @ 2018-06-03 17:30 大佛拈花-GoSaint 阅读(3376) 评论(0) 推荐(4) 编辑
摘要: 什么是线程:对于现在的计算机而言,一般都是多核处理器;对于一个程序而言,在宏观上来说可以同时执行多个任务;那么每一个任务可以称之为一个线程,而每一个程序可以称之为一个进程;并发执行的进程数目并不是由CPU的数目决定的,操作系统将CPU的时间片分配给每一个进程,在宏观上来说给人一种并行处理的感觉;线程 阅读全文
posted @ 2018-05-30 15:32 大佛拈花-GoSaint 阅读(1957) 评论(0) 推荐(1) 编辑
摘要: maven搭建JPA开发环境 1 依赖的maven pom文件 主要有hibernate-core、hibernate-entitymanager、javax-persistence、mysql驱动 <?xml version="1.0" encoding="UTF-8"?> <project xm 阅读全文
posted @ 2018-05-21 21:25 大佛拈花-GoSaint 阅读(1109) 评论(0) 推荐(0) 编辑
摘要: 并发之AtomicBoolean/AtomicBooleanArray/AtomicBooleanUpdateFeild 1 和前面的AtomicInteger很相似或者原理基本一致的;原理就是使用了CAS算法实行循环重试的方式来保证一组操作是原子性的操作; 2 同样的也是一个无锁技术的应用; 3  阅读全文
posted @ 2018-05-21 17:09 大佛拈花-GoSaint 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 基于反射的实用工具,可以对指定类的指定 volatile int 字段进行原子更新。此类用于原子数据结构,该结构中同一节点的几个字段都独立受原子更新控制。 先来看一段代码: package automic; import java.util.concurrent.atomic.AtomicInteg 阅读全文
posted @ 2018-05-20 17:57 大佛拈花-GoSaint 阅读(3913) 评论(0) 推荐(0) 编辑
摘要: 5 并发之AtomicIntegerArray 该类是Java对Integer数组支持的原子性操作;在认识这个类之前我们先来看一个方法,这个方法是Integer类中的; public static int numberOfLeadingZeros(int i) {} public static in 阅读全文
posted @ 2018-05-17 22:58 大佛拈花-GoSaint 阅读(2414) 评论(0) 推荐(0) 编辑