![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码
文章平均质量分 79
很土
专注于高性能服务器设计及开发
展开
-
对象状态示例类
基于对象状态类的示例类,可以根据示例类举一反三,充分提高多线程的并发能力。原创 2020-02-06 14:57:45 · 303 阅读 · 0 评论 -
对象状态类
在多线程编程中,但凡对象的操作必须在某种状态下才有效,且对象状态的变化是需要一定的时钟周期,这时就涉及状态迁移。利用好对象状态可以提高程序的并发能力,同时也能控制对象状态。原创 2020-02-06 14:54:52 · 544 阅读 · 0 评论 -
共享对象模板
在多线程编程中,涉及多线程对象共享,为了保证对象有效,防止出现一个线程正在操作对象而另外线程正在或已经释放对象的情况。共享对象模板就是针对多线程共享对象而设计,通过对象引用计数来保证对象有效及对象释放的向后延迟。原创 2020-02-06 14:43:40 · 255 阅读 · 0 评论 -
在单片机中, 64 位整数除以 32 位整数
在单片机中, 64 位整数除以 32 位整数, 因为没有64位寄存器, 所以需要自己实现// 64 位除以 32 位Longword _DivEx(Longword AHiVal, Longword ALoVal, Longword ADivisor, Longword& AHiRet, Longword* ARemainder = NULL){原创 2012-08-04 11:53:39 · 2773 阅读 · 1 评论 -
几种位操作的相关算法
1. 字节的1位存放在2位的空间里, 如: 0xE3 -> 0xA82A算法1: 按位移位并进行位或运算算法2: 使用查表法算法3: 位的并行处理 // 1 位存放在 2 位的低位, 如: 0xE3 -> 0x5415Word ZoomByte1(Byte AValue){ Word result; // 计算 res原创 2012-08-04 11:48:35 · 1234 阅读 · 0 评论 -
关于C++类库KYLib: 固定缓冲区的压缩/解压缩类源码
固定缓冲区的压缩/解压缩类源码及测试例子: http://download.csdn.net/detail/kyee/5052133固定缓冲区的压缩/解压缩算法,适用于网络传输数据包的压缩,具有压缩速度快、压缩率适中特点,而且压缩后数据缓冲区可控。其中包含固定缓冲区的压缩类(TKYFixedPack)和解压缩类(TKYFixedUnpack),源码如下:// ===========原创 2013-02-04 14:15:02 · 1256 阅读 · 0 评论 -
并行处理之引用计数与状态的使用
--------------------------------------------------------------------------------标题: 并行处理之引用计数与状态的使用作者: 叶飞虎日期: 2013.03.09------------------------------------------------------------------------原创 2013-03-09 14:17:30 · 1955 阅读 · 0 评论 -
远程调用内核接口的封装类(RCKObjs)
远程调用内核接口的封装类(RCKObjs), RCK 包含 Application, Function, Connection, Command, Response 和 Fields 六大类。原创 2014-07-08 11:32:41 · 1472 阅读 · 0 评论 -
固定尺寸内存块的缓冲队列类及C++实现源码
本文讲的缓冲队列为链接方式, 链接方式一般通过预分配一个结点作为接力点来实现无锁队列, 优点是实现简单, 缺点是浪费一个结点的内存, 当结点内存块尺寸较大时浪费就大了。如何不浪费一个结点内存的链接方式无锁队列? 当队列中只有一个结点时, 本缓冲队列中使用了原子锁进行操作, 这是一种平衡策略, 若读者有更好方法不妨告之一下!原创 2014-10-22 11:08:40 · 2890 阅读 · 0 评论 -
C++面向对象编程原则及人类示例
在 C++ 面向对象编程中,有很多开发人员无法把控类,以及应该如何编写。在编写类时有几个原则必须遵循,这样可以使类拥有健壮性及可用性。人类示例 TPerson 描述了类的生命力,以及类的属性、行为和事件。 面向对象编程的二个基本特征:封装和继承。 封装的目的是为了信息隐藏,并保证类数据成员的私有性和一致性,同时数据成员之间是强耦合,而类与类之间应该弱耦合。 继承的目的是为了扩充类的多样性,多继承和多态都是继承的扩展方式,而继承会增加类与类之间的耦合性。原创 2017-10-12 11:02:10 · 941 阅读 · 1 评论 -
用 C 语言实现单片机中的动态内存管理
在单片机中内存空间很小,主要是为了省硬件成本,如: Cortex m3/m4 的 64KB/192KB, Quectel M26 的 256KB/512KB 等等都不带动态内存管理。为了实现内存动态分配和释放,要么使用厂家库的动态内存管理接口,要么自己写动态内存管理。原创 2018-12-20 09:51:42 · 1786 阅读 · 3 评论 -
查找相同项的双螺旋匹配算法
--------------------------------------------------------------------------------标题: 查找相同项的双螺旋匹配算法作者: 叶飞虎日期: 2012.07.16--------------------------------------------------------------------------原创 2012-08-04 11:40:00 · 1168 阅读 · 0 评论 -
日期时间与 time_t 相互转换
--------------------------------------------------------------------------------标题: 日期时间与 time_t 相互转换作者: 叶飞虎日期: 2012.05.25----------------------------------------------------------------------原创 2012-05-25 16:54:29 · 2638 阅读 · 0 评论 -
在一读一写限制下,无锁环形队列如何实现?
环形一读一写队列中,不需要担心unsigned long溢出问题,因为溢出后自动回归,相减值还会保留。示例一(注:Max_Count 必须为 2 的指数,即:2, 4, 8, 16...):// 队列尺寸#define Max_Count 4096#define Max_Mask 4095 // = Max_Count - 1// 变量void*原创 2009-03-28 21:00:00 · 3953 阅读 · 2 评论 -
队列和事件的配合使用示例
一个线程收到事件或消息后直接加入到队列,而处理线程读取队列中的事件或消息,并加以处理。在这个模式中,有一个线程负责写,多个处理线程读自己的队列并处理。虽然看起来象是一写多读,其实不然,针对某一事件队列而言,只有一个线程是写一个线程是读。 队列和事件的配合使用示例如下: /* 方法一: 独立线程处理队列 */// 线程执行体void TDealThread::Ex原创 2009-09-09 21:45:00 · 2401 阅读 · 10 评论 -
C++源码:数字串转换成数值或金额串的源码
在IVR或语音提示中会用到很多播报数值或金额的片段,现提供源代码以供参考,如下: TransNum.h 文件#ifndef _TransNum_H_#define _TransNum_H_#include "KYLib.h"// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~原创 2009-11-07 20:22:00 · 1050 阅读 · 1 评论 -
在Win32平台中,多读单写锁如何实现?
--------------------------------------------------------------------------------标题: 在Win32平台中,多读单写锁如何实现?作者: 叶飞虎日期: 2004.03.17-------------------------------------------------------------------原创 2009-03-30 21:24:00 · 2893 阅读 · 28 评论 -
关于C++类库KYLib: String 替换函数源码
在KYLib 2.1.1.4 (build 2010.03.15) 中增加字符串替换函数 StringReplace, 源码如下: /* 头文件(.h) */// 在 AStr 中查找 AOld 串, 并使用 ANew 替换// 注: SameStr(AOld, ANew, true) 必须为 false, 内部不检查是否相同// 如: StringReplace("aab原创 2010-03-16 11:26:00 · 1033 阅读 · 0 评论 -
关于C++类库KYLib: 快速压缩/解压缩类源码
在 KYLib 2.1.5.0 (build 2010.08.11) 中, 增加 KYQuickPack 单元: TKYQuickPack(快速压缩类), TKYQuickUnpack(快速解压缩类), 源码如下: KYQuickPack.h 文件// =======================================// Unit : 快速压缩/解压缩单元 (KY原创 2010-08-11 18:37:00 · 1430 阅读 · 1 评论 -
关于C++类库KYLib: 用C语言实现平衡二叉树(AVL tree)的源码
平衡二叉树(AVL tree)调整算法请参见我的博文: 若要在 C++ 中使用则只要将 KYAVLTreeC.c 改为 KYAVLTreeC.cpp 即可。 用C语言实现平衡二叉树(AVL tree)头文件如下:// =======================================// Unit : AVL tree (KYAVLTreeC.h)//原创 2011-03-05 09:28:00 · 2047 阅读 · 2 评论 -
关于C++类库KYLib: 使用AVLtree实现 map 类模板源码
在 KYLib 2.1.4.0 (build 2010.07.03) 中, 增加 TKYMapIntKey(整型键值 map 类模板) 和 TKYMapStrKey(字符串键值 map 类模板) 等等, 源码如下:// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/* TKYM原创 2010-07-04 16:07:00 · 1054 阅读 · 0 评论 -
B-tree查找函数
--------------------------------------------------------------------------------标题: B-tree查找函数作者: Kyee Ye日期: 2011.04.17-------------------------------------------------------------------------原创 2011-04-17 19:35:00 · 995 阅读 · 0 评论 -
一读一写情况下,无锁队列如何实现?
一读一写情况下,无锁队列如何实现?其实并不难,先说说一读一写无锁队列的实际应用吧。读写队列最大的应用是:一个线程收到事件或消息后直接加入到队列,而处理线程读取队列中的事件或消息,并加以处理。在这个模式中,有一个线程负责写,多个处理线程读自己的队列并处理。虽然看起来象是一写多读,其实不然,针对某一事件队列而言,只有一个线程是写一个线程是读。此示例可以封装成一个Queue类,在KYLib中有T原创 2009-03-28 19:12:00 · 3145 阅读 · 5 评论 -
在Win32平台中,多读单写锁如何使用临界区实现?
--------------------------------------------------------------------------------标题: 在Win32平台中,多读单写锁如何使用临界区实现?作者: 叶飞虎日期: 2011.11.11--------------------------------------------------------------原创 2011-11-11 23:56:31 · 1362 阅读 · 3 评论