文章列表

4.1k4 分钟

# 基于 Linux 的链路聚合实现 # 简介: 聚合链路是将多块网卡逻辑地连接到一起从而允许故障转移或者提高吞吐率的方法。提高服务器网络可用性。 # 实现方式: # 基于内核支持 bonding 模块进行实现,该模块有两种加载方式 在编译内核时候编译进入内核源码当中,这样的话在 lsmod 时候不会显示该驱动模块 在编译内核时候选择以模块方式加载,这样的话在编译完成之后会产生一个 bonding.ko 的驱动文件 # 链路聚合的模式: mod=0 ,即:(balance-rr) Round-robin policy(轮询) 聚合口数据报文按包轮询从物理接口转发。 – 负载
3.4k3 分钟

# C 语言多线程简单运算不加锁实现 因为 c 语言本事并没有提供原子性操作的函数,而使用多线程库当中的锁机制又会大大影响效率,在经过多方查找,以及 redis 源码当中实现计数器的实现了解到了编译器自带的十二个内置原子性操作函数 # 原子性操作函数: // 返回更新前的值type __sync_fetch_and_add (type *ptr, type value, ...) // 自加type __sync_fetch_and_sub (type *ptr, type value, ...) // 自减type __sync
2.5k2 分钟

# 堆排序 (最大小堆) 堆排序:堆排序是指利用堆这种数据结构所设计的一种排序算法。堆积是一颗近似完全二叉树,并且满足子节点的值总是小于 (大于) 他的父节点 ** 完全二叉树:** 最下层子节点集中在从左边开始;如果最下层左节点为空,右节点不为空,那么久不是完全二叉树 如图,可以将这颗二叉树分为三个小堆,每一个小堆堆父节点与两个子节点进行比较,选择最大的一个替换父节点 如 A,B,C 三个节点替换之后为 A (10),B (5),C (3) 由此可以写出替换算法 void HeapSort(int tree[],int end,int start){ int dad&#x
1.7k2 分钟

# 链表 翻转链表方法 #include <iostream> #include <algorithm> using namespace std; struct List{ List *next; int val; }; void Creat(List* head,int n){ List *p=head; for(int i=1;i<=n;i++){ List *tmp=new List; tmp->val
2.6k2 分钟

# SQL 注入 # 分类 SQL 注入根据不同的标准,有不同的分类,从数据类型分类的话,SQL 注入分为数字型和字符型。 根据注入手法分类,可以分为: 可联合查询注入 ----- 联合查询 使用 order by 1 order by 2 … 判断数据库有多少列数 再使用 [?id=3 union select 1,2,3,…] 报错型注入 ------ 报错查询 # 布尔型注入 ------ 布尔盲注 思路:布尔逻辑注入的思路是闭合 sql 语句,构造 or 和 and 逻辑语句,注释多余的代码。 原始语句: select fir ,las from user where use