- 博客(29)
- 收藏
- 关注
原创 c语言函数回调
函数回调就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应这个是我在写redis异步调用时的函数。ac:一个参数,用来存储跟连接相关的参数,客户端服务端均有。fn:一个回调函数,当执行format的命令后,会自动调用 fn函数privdata:一个自己的数据,可以自行定义我的需求:现在已有的机
2022-12-30 10:24:48 337 1
原创 pthread.h头文件
在Unix/Linux系统中,C/C++提供了pthread(POSIX线程)API。它允许我们为并发流程创建多个线程,这可以提高程序在多核处理器或上的执行速度。想要使用pthreads库的所有功能,我们必须在.c或.c++文件中包含pthread.h头文件,在编译文件时在命令行中使用 -pthread 或 -lpthread。参数:thread:返回创建的线程的线程ID,是一个指向无符号整数值的指针。attr: 默认值为NULL,目前没有用,不需要修改。
2022-12-29 15:28:01 5301
原创 Linux信号
软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。在进程表的表项中有一个软中断信号域,该域中每一位对应一个信号,当有信号发送给进程时,对应位置位。由此可以看出,进程对不同的信号可以同时保留,但对于同一个信号,进程并不知道在处理之前来过多少个。
2022-12-16 10:24:12 163
原创 Libevent网络编程
Libevent是一个用于开发可伸缩网络服务器的事件通知库。libevent API提供了一种机制,用于在文件描述符上发生特定事件或达到超时后执行回调函数。此外,libevent还支持由于信号或常规超时引起的回调。Libevent旨在取代事件驱动网络服务器中的事件循环。应用程序只需要调用event_dispatch(),然后动态地添加或删除事件,而不必更改事件循环。目前libevent支持/dev/poll、kqueue(2)、select(2)、poll(2)和epoll(4)。
2022-12-14 11:41:28 339
原创 zskiplist redis的跳跃表
在 Reids 中,跳跃表主要应用于有序集合 zset 的底层实现,zset 的另外一种实现方式为 ziplist。Redis 的配置文件中关于 zset 的底层实现有两个配置:1、zset-max-ziplist-entries 128:zset 采用 ziplist 时,元素个数最大值。默认为 1282、zset-max-ziplist-value 64:zset 采用 ziplist 时,每个元素的字符串长度的最大值,默认值为 64。
2022-12-02 11:05:53 131
原创 通用链表实现哈希表
通用链表实现哈希表.hashTest.c调用hashtable.h里面提供的接口,完成哈希链表的构建和增删改查等。hashtable.c 是hashtable.h的实现。
2022-08-17 14:42:17 280
原创 利用通用双向链表实现队列
C语言是没有封装好的通用队列的,所以我们要用队列,必须自己实现。本篇笔记利用的是面向对象的编程方法,把函数体结果放在C_queueOperation的结构体中,调用指针,封装对象和操作,实现通用链表下的队列。...
2022-08-16 17:55:13 350
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人