AVCaptureInput AVCaptureDeviceInput:用于从AVCaptureDevice对象捕获数据. AVCaptureScreenInput:从macOS屏幕上录制的一种捕获输入. AVCaptureMetadataInput:它为AVCaptureSession提供AVMetadataItems.AVCaptureMetadataInputs呈现了一个且只有一个AVCaptureInputPort,它目前可能只连接到AVCaptureMovieFileOutput.通过…
1.AVCaptureInput AVCaptureDeviceInput:用于从AVCaptureDevice对象捕获数据. AVCaptureScreenInput:从macOS屏幕上录制的一种捕获输入. AVCaptureMetadataInput:它为AVCaptureSession提供AVMetadataItems.AVCaptureMetadataInputs呈现了一个且只有一个AVCaptureInputPort,它目前可能只连接到AVCaptureMovieFileOutput.…
原文: Android Drawable的9种子类 介绍   Drawable 在android里面 就是代表着图像,注意是图像 而不是图片. 图片是图像的子集.图像除了可以包含图片以外 还可以包含颜色. 换句话说Drawble就是canvas 可以绘制的 一种概念. android 系统自带了很多种drawable.我们最好对自带的drawable 有一种比较熟悉的了解, 这样对我们apk开发很有好处,因为drawable使用 非常简单 基本上就是xml编写 即可.比你自己自定义view的成本…
之前写的文章: 关于作用域范围Scope Scope及相关的子类如下: 同时有些Scope还继承了Scope.ScopeListener类,如下: 1.StarImportScope及ImportScope 在JCCompilationUnit中定义了两个属性,其类型就是这两个类型: public ImportScope namedImportScope; public StarImportScope starImportScope; 但在初始化JCCompilationUnit语法节点时并不初…
今天我们来看一下JUC包中的原子类,所谓原子操作是指不会被线程调度机制打断的操作:这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程),原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分.将整个操作视作一个整体是原子性的核心特征. 在atomic包中的这些原子类我们可以大致给他分类为: 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ; 数组类型:…
1 Atomic原子类介绍 2 基本类型原子类 3 数组类型原子类 4 引用类型原子类 5 对象的属性修改类型原子类…
这是java高并发系列第23篇文章,环境:jdk1.8. 本文主要内容 JUC中的原子类介绍 介绍基本类型原子类 介绍数组类型原子类 介绍引用类型原子类 介绍对象属性修改相关原子类 预备知识 JUC中的原子类都是都是依靠volatile.CAS.Unsafe类配合来实现的,需要了解的请移步: volatile与Java内存模型 java中的CAS JUC底层工具类Unsafe JUC中原子类介绍 什么是原子操作? atomic 翻译成中文是原子的意思.在化学上,我们知道原子是构成一般物质的最小单…
在分析原子类之前,先来了解CAS操作 CAS CAS,compare and swap的缩写,中文翻译成比较并交换. CAS 操作包含三个操作数 —— 内存位置(V).预期原值(A)和新值(B).如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值 .否则,处理器不做任何操作. 无论哪种情况,它都会在 CAS 指令之前返回该 位置的值.(在 CAS 的一些特殊情况下将仅返回 CAS 是否成功,而不提取当前 值.) CAS 有效地说明了“我认为位置 V 应该包含值 A:如果包含该…
1 Atomic 原子类介绍 Atomic 翻译成中文是原子的意思.在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的.在我们这里 Atomic 是指一个操作是不可中断的.即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰. 所以,所谓原子类说简单点就是具有原子/原子操作特征的类. 并发包 java.util.concurrent 的原子类都存放在java.util.concurrent.atomic下,如下图所示. 根据操作的数据类型,可以将JUC包中…
    使用锁能解决并发时线程安全性,但锁的代价比较大,而且降低性能.有些时候可以使用原子类(juc-atomic包中的原子类).还有一些其他的非加锁式并发处理方式,我写这篇文章来源于Java中有哪些无锁技术来解决并发问题的思考. 1.原子类场景 刚才说了,原子类是在不加锁的情况下,实现并发安全.我们知道锁synchronized/lock能实现并发安全的三点要求:原子性.可见性和有序性.而原子类顾名思义可以保证原则性其他两点不能确定(我是边想边写的,后面我会给出结论). 好吧,写不下去了,还是…