- 博客(15)
- 收藏
- 关注
原创 线程池如何实现
接收线程池句柄(管理组件)和执行者数量。初始化锁和条件变量,创建numWorkers个执行者对象(创建线程)并加入到执行队列线程的回调函数 nThreadPoolCallback:接收一个执行者等待任务到来(while循环判断执行者所在线程池中的任务队列里有无任务),若执行者的停止参数被设为1则break循环,线程回调函数返回,线程销毁没有任务就一直阻塞(使用条件变量挂起线程),有任务则移除第一个任务并且调用第一个任务的函数。
2025-04-23 14:39:17
605
原创 C通讯录实现
具体来说,strlen函数从buffer的首地址开始,逐个字符地扫描,直到遇到第一个\0为止,然后返回计数器的值,即字符串的长度。这里的memcpy是C标准库中的一个函数,用于处理数组或结构体等复合数据类型,将从源内存地址复制一定数量的字节到目标内存地址。链表指针表示单个对象还是多个仅取决于其next是否为NULL。2. 人员数据的在文件中保存的格式——自定义格式(逗号分隔的键值对)3. 人员数据包含的信息——姓名、电话号码。fflush:从缓存(内存)中刷新到磁盘中。fclose:关闭一个打开的文件。
2025-04-19 23:52:44
551
原创 mysql数据库 C API插入图片数据 stmt预处理语句
初始化数据库句柄:init连接数据库:real_connect传递sql语句:real_query关闭数据库:close初始化stmt句柄:init和prepare绑定stmt参数:bind_param发送数据:send_long_data执行查询:execute关闭stmt句柄:close初始化stmt句柄:init和prepare绑定stmt结果集:bind_result执行查询:execute。
2025-04-18 22:56:38
774
原创 mysql数据库 C代码和workbench远程连接
这是因为用了5. 版本的workbench,而我通过`sudo apt-get install mysql-server`下载的版本为8.0,加密方式为caching_sha2_password,5. 版本的客户端还不支持。因此需要修改 mysql 用户密码的加密方式。admin没有权限操作数据库mysql,使用root用户的权限赋予admin用户select权限。说明数据库服务器返回给workbench了10061的错误,那么服务器肯定工作了。指定mysql的系统头文件、mysql的库,进行编译运行。
2025-04-16 00:44:44
742
原创 并发下的计数方案(锁)
多线程:指从软件或者硬件上实现多个线程并发执行的技术。锁的内容不多 很少 可以很快执行完(等待解锁的代价远远小于线程切换的代价)初始化锁:pthread_mutex_init(锁的地址,锁的属性)解锁:pthread_mutex_unlock(锁的地址)上锁:pthread_mutex_lock(锁的地址)保证在a没有被其他线程所篡改的情况下,才对a进行赋值。互斥锁的类型:pthread_mutex_t。锁的内容很多,比如 rbtree的添加。线程的类型:pthread_t。把多条指令变成一条指令。
2025-04-16 00:17:18
246
原创 java 从cmd输入字符串再输出显示乱码问题
cmd控制台输入chcp得到"活动代码页: 936",表示cmd的编码方式为GBK,键盘输入也为GBK,但是Scanner的默认读入方式不是GBK,所以输出乱码。将scanner的参数设置为"gbk"即可正常输出。
2023-12-29 23:26:57
483
1
原创 Cmake笔记
Cmake中的target有可执行文件和库文件,分别使用。库文件下CMakeLists.txt。顶级CMakeLists.txt。
2023-11-19 21:50:58
209
原创 Linux系统下 使用homebrew下载opencv
把系统允许单个进程打开的文件数增加到102400之后。这是因为下载时打开的文件太多了。下载了一会,出现报错如下。打开终端,输入以下命令。
2023-11-19 15:29:07
187
原创 汉诺塔(C++):递归应用
【问题描述】汉诺塔是必须用递归方法才能解决的经典问题。大梵天创造世界时做了三个金刚石柱子(A,B,C),在第一根主子上从下往上按大小排序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放到第二根柱子上,并且规定每次只能移动一格圆盘,在小圆盘上不能放大圆盘。请编写一个程序,求解n(n>1)个圆盘的汉诺塔问题。【输出形式】输出为汉诺塔移动过程 格式为 Move 圆盘编号:from 柱子编号 to 柱子编号。【输入形式】正整数n(n>1)
2023-11-04 19:53:01
173
1
原创 JAVA 编程题练习
所以这里不使用next(),因为我的字符串里有空格;这里在输入字符串前又加了一行nextLine()是为了吸收所输入的数字后面的回车键。String类型不可修改,要么用StringBuilder,要么转换为字符数组。next()有空格就停止输入了,nextLine()输入到有回车键的地方。
2023-11-03 16:44:15
93
原创 情报加密(JAVA)
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串。可能有多组测试数据。每组测试数据的第一行是字符串的数目n,其余n行每行一个字符串,每个字符串长度小于80个字符。对于每组数据,输出每行字符串的加密字符串。
2023-11-02 22:22:56
210
原创 选美比赛(Java)
比赛结束时,要在现场按照选手的出场顺序宣布最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。如: </div> <div> 选手数量: 7 选手得分: 5,3,4,7,3,5,6宣布名次: 3,5,4,1,5,3,2 请编程帮助大奖赛组委会完成半决赛的评分排名工作。【输入形式】选手数量:7 选手得分:5;【输出形式】选手的排名:3 5 4 1 5 3 2。【样例输入】7 5 3 4 7 3 5 6。【样例输出】3 5 4 1 5 3 2。
2023-11-02 19:58:50
129
原创 DNA序列(Java)
一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。因为高的GC-Ratio可能是基因的起始点。给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。【输入形式】输入一个string型基因序列,和int型子串的长度。【输出形式】找出GC比例最高的子串,如果有多个输出第一个的子串。【样例输入】AACTGTGCACGACCTGA 5。
2023-11-02 18:35:47
335
原创 C语言|为啥我malloc之后,没有使用free,但是好像已经释放了?
分两次申请,每次申请13GB的空间,指针p不会变0,空间是够的?一次申请26GB的空间,指针p变0,空间不够。
2023-06-25 16:43:30
331
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅