【前言】 队列是众多数据结构中最常见的一种之一。曾经有人和我说过这么一句话,叫做“程序等于数据结构+算法”。因此在设计模块、写代码时,队列常常作为一个很常见的结构出现在模块设计中。DPDK不仅是一个加速网络IO的框架,其内部还提供众多的功能组件,rte_ring就是DPDK内部提供的一种无锁队列,本 ...
分类:
其他好文 时间:
2020-01-18 16:11:20
阅读次数:
76
Atomic类 Atomic类是一个简单的高效的、线程安全的递增递减方案,在多线程或者并发环境中,我们常常会遇到这种情况 int i=0; i++ 稍有经验的同学都知道这种写法是线程不安全的。为了达到线程安全的目的,我们通常会用synchronized来修饰对应的代码块。现在我们有了新的方法,就是使 ...
分类:
其他好文 时间:
2020-01-18 12:22:08
阅读次数:
83
1. 原子操作原子操作指的是在执行过程中不会被别的代码路径所中断的操作。常用原子操作函数举例:atomic_t v = ATOMIC_INIT(0); //定义原子变量v并初始化为0atomic_read(atomic_t *v); //返回原子变量的值void atomic_inc(atomic_ ...
分类:
其他好文 时间:
2020-01-15 21:33:40
阅读次数:
72
Spring Boot上传文件+部署到Tomcat
分类:
编程语言 时间:
2020-01-12 00:15:22
阅读次数:
77
支持内部晋升的无锁并发优先级线程池 [TOC] 引言 在技术群讨论到一个有意思的业务需求,可以描述为: 有一个内部按照优先级进行任务排序的线程池。线程池会优先执行高优先级的任务。随着时间的流逝,线程池内部低优先级的任务的优先级会逐渐晋升变为高优先级,以避免被不断新增的高优先级任务阻塞导致饿死。 考虑 ...
分类:
编程语言 时间:
2020-01-10 22:16:09
阅读次数:
82
1 Atomic 原子类介绍 Atomic 翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的。在我们这里 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。 所以,所谓原子类说简单点就是具有 ...
分类:
其他好文 时间:
2020-01-10 00:37:54
阅读次数:
120
Atomic: Atomic包是java.util.concurrent下的另一个专门为线程安全设计的java的包,包含多个原子性操作的类。基本特性就是在多线程情况下,当多个线程想要同时操作这些类的某些实例方法时,具有排他性,也就是当某个线程在执行某个方法时,不会被其他线程打断,其他线程会在外部等待 ...
分类:
编程语言 时间:
2020-01-09 20:37:58
阅读次数:
81
事务的概念事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。事务是一个不可分割的工作巡逻单元,在数据库系统上执行并发操作时,事务时最小的控制单元适用于多用户同时操作的数据库系统的场景,如银行、保险公司及证券公司交易系统等等通过事务的整体性以保证数据的一致性事务的ACID特点原子性(Atomic
分类:
数据库 时间:
2020-01-08 00:40:57
阅读次数:
139
一.如果只是简单地解决在多线程中对共享资源的读写并发问题,只需要用C++以下内容: 线程类 thread, 原子数据类模板 atomic<T> t, 互斥 mutex, 锁 lock, 条件变量 condition_variables. 二.在此基础上,如果想在并行编程中获得更好的性能,尤其当使用的 ...
分类:
编程语言 时间:
2020-01-06 21:09:08
阅读次数:
92
众所周知,i++分为三步: 1. 读取i的值 2. 计算i+1 3. 将计算出i+1赋给i 可以使用锁来保持操作的原子性,用volatile保持值的可见性和操作顺序性; 如果仅仅是计算操作,我们自然就想到了java.util.concurrent.atomic包下的原子类,则不必考虑锁的升级、获取、 ...
分类:
其他好文 时间:
2020-01-01 16:28:19
阅读次数:
161