1. av_register_all() 该函数位于 libavformat/allformats.c 中。 该函数主要是注册所有的编解码器、复用/解复用组件等。 这里的 AVOnce 和 AV_ONCE_INIT 以及 ff_thread_once 为: 在多线程程序中,不管创建了多少个线程,有些 ...
分类:
其他好文 时间:
2018-06-09 23:21:27
阅读次数:
266
并发包中并发List只有CopyOnWriteArrayList这一个,CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行修改操作和元素迭代操作都是在底层创建一个拷贝数组(快照)上进行的,也就是写时拷贝策略。 我们首先看一下CopyOnWriteArrayList的 ...
分类:
编程语言 时间:
2018-06-09 21:09:49
阅读次数:
199
本文基于 jdk 1.8 。 CountDownLatch 的使用 "前面的文章" 中说到了 volatile 以及用 volatile 来实现自旋锁,例如 java.util.concurrent.atomic 包下的工具类。但是 volatile 的使用场景毕竟有限,很多的情况下并不是适用,这个 ...
分类:
编程语言 时间:
2018-06-08 10:36:29
阅读次数:
225
java.util.concurrent.atomic.AtomicLong类提供了可以被原子地读取和写入的底层long值的操作,并且还包含高级原子操作。 AtomicLong支持基础long类型变量上的原子操作。 它具有获取和设置方法,如在volatile变量上的读取和写入。 也就是说,一个集合与 ...
分类:
其他好文 时间:
2018-06-06 21:42:00
阅读次数:
200
「 天行健,君子以自强不息。地势坤,君子以厚德载物。」———《易经》 volatile 变量,在上一篇文章中已经有简单提及相关概念和用法,这一篇主要对 Volatile 变量的特性进行源码验证。验证它的涉及到的三个特性: 可见性 指令重排序 非原子性 volatile 之可见性验证 上一篇文章中,讲 ...
分类:
编程语言 时间:
2018-06-06 01:13:31
阅读次数:
232
1、修改maxmemory2、修改maxmemory-policy设置最大内存后需要设置删除策略否则当内存不足时再添加数据就会报错。有六种删除策略。volatile-lru:使用LRU算法从已设置过期时间的数据集合中淘汰数据。volatile-ttl:从已设置过期时间的数据集合中挑选即将过期的数据淘汰。volatile-random:从已设置过期时间的数据集合中随机挑选数据淘汰。allkeys-l
分类:
其他好文 时间:
2018-06-05 16:25:58
阅读次数:
136
前言:volatile关键字在面试中经常被问到,从volatile关键字可以引申出许多知识点,因此有必要对此进行总结。本文根据《深入理解Java虚拟机——JVM高级特性与最佳实践》中的相关章节,整理得来。 相关名词 TPS(Transactions Per Second):每秒事务处理数,衡量一个服 ...
分类:
其他好文 时间:
2018-06-04 14:34:20
阅读次数:
137
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来 ...
分类:
编程语言 时间:
2018-06-03 21:37:15
阅读次数:
152
说到volatile,参加过面试的你一定不会陌生。volatile有什么用,什么时候用,实现的原理是什么,原子性和可见性又是怎么回事 ...
分类:
编程语言 时间:
2018-06-02 22:51:11
阅读次数:
181
对于volatile型变量的特殊规则 关键字volatile可以说是Java虚拟机提供的最轻量级的同步机制。 在处理多线程数据竞争问题时,不仅仅是可以使用synchronized关键字来实现,使用volatile也可以实现。 Java内存模型对volatitle专门定义了一些特殊的访问规则,当一个变 ...
分类:
编程语言 时间:
2018-05-31 10:39:32
阅读次数:
223