StampedLock是JUC并发包里面JDK1.8版本新增的一个锁,该锁提供了三种模式的读写控制,当调用获取锁的系列函数的时候,会返回一个long 型的变量,该变量被称为戳记(stamp),这个戳记代表了锁的状态。 t…
Java - 多线程与锁
进程-线程 进程,Process,处于运行中的程序,系统进行资源分配和调度的独立单位,拥有独立的内存空间(堆)。 动态性:生命周期和状态; 独立性:独立实体; 并发性:Concurrency,抢占式多任务操作策略; 注:…
Java多线程系列--“JUC原子类”04之 AtomicReference原子类
概要 本章对AtomicReference引用类型的原子类进行介绍。内容包括:AtomicReference介绍和函数列表AtomicReference源码分析(基于JDK1.7.0_40)AtomicReference…
java并发-锁-synchromized
关键字synchromized 的作用是实现线程间的同步。它的工作室对同步的代码加锁,使得每一,只有一个线程可以进入同步块,从而保证线程间的安全性。 synchromized 的用户这里做一个简单的整理, 1,指定加锁对…
java分布式锁入门实战
这篇文章只讲使用,不讲原理,简单粗暴。 分布式锁,顾名思义,就是分布式的锁,应用于一些分布式系统中。例如,有一个服务部在数太机器上,然后有可能操作数据库中的同一条记录。这时,就需要分布式锁。 分布式锁实现的方式很多,一般…
Java:多线程,线程池,用Executors静态工厂生成常用线程池
一: newSingleThreadExecutor 创建一个单线程的线程池,以无界队列方式运行。这个线程池只有一个线程在工作(如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。)此线程池能够保证所…
jvm工作原理
首先这里澄清两个概念:JVM实例和JVM执行引擎实例,JVM实例对应了一个独立运行的Java程序,而JVM执行引擎实例则对应了属于用户运行程序的线程;也就是JVM实例是进程级别,而执行引擎是线程级别的。 JVM是什么?—…
深入理解Java虚拟机--读书笔记3/3
Chap 10 早期(编译期)优化 1.编译过程:A.解析与填充符号表。B.插入式注解处理器的注解处理过程。C.分析与字节码生成过程。 2.解析包括词法分析(将代码中的字符流转变为标记的集合Token)和语法分析(将To…
JUC之volatile
一、简介 volatile是Java语言的关键字,用来修饰可变变量(即该变量不能被final修饰),且必须是至少类内可见。所以它是可以修饰带static的变量。这我自己下定义。 它是被设计用来修饰被不同线程访问和修改的变…
JUC源码阅读之AbstractQueueSynchronizer(三)
1.内部的一些支持Conditions的方法 如果node原来在condition队列中,现在已经被移动到同步队列中,就返回true //如果node原来是在条件队列中,现在移动到同步队列中,就返回true final …
(Android 9.0)Activity启动流程源码分析
前言 熟悉Activity的启动流程和运行原理是一个合格的应用开发人员所应该具备的基本素质,其重要程度就不多做描述了。同时,知识栈应该不断的更新,最新发布的Android 9.0版本相较于之前的几个版本也做了许多改动和重…
排序算法1:最快最简单的排序——桶排序(C++版本)
讲解链接: 链接1:【坐在马桶上看算法】算法1:最快最简单的排序——桶排序 在此感谢啊哈磊 链接2: 最快、最简单的排序算法——桶排序 原文中附有代码。 下面我要开始摘抄总结了。。。。文字来源于博客2。。。 1.什么是桶…