- 博客(68)
- 资源 (7)
- 收藏
- 关注
转载 在Ubuntu环境下使用vcpkg
https://blog.csdn.net/CHYabc123456hh/article/details/109557324
2021-11-14 13:54:25 1628
原创 SO_LINGER 延时关闭 优雅关闭
setsockopt(m_listenfd, SOL_SOCKET, SO_LINGER, &tmp, sizeof(tmp));链接
2021-04-20 16:51:06 155
转载 服务端处理事件的两种模式--Reactor和Proactor (转载)
服务端处理事件的两种模式–Reactor和Proactor链接: link.
2021-03-26 16:54:05 93
原创 redis异步实现订阅和发布(C++)
发布订阅模式订阅、取消订阅和发布实现了发布/订阅消息范式,发布者不是计划发送消息给特定的订阅者。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。示例使用libevent库、boost库、 hiredis库等,因为是基于异步的发送和接收,需要回调函数来返回确认相关的信息。发布者模块// redis_publisher.h封装了hiredis,实现消息发布给redis的功能。#ifndef REDIS
2021-03-22 16:25:39 3043
原创 C++操作redis
一般使用的就是hiredis这个库文件,在hiredis上封装一层,封装成面向对象的方法。redis.h#ifndef _REDIS_H_#define _REDIS_H_#include<stdio.h>#include<iostream>#include<string>#include<hiredis/hiredis.h>using namespace std;class Redis{public: Redis(){} ~Re
2021-03-22 10:21:39 407
原创 ZeroMQ---推拉模式
概述推拉模式,PUSH发送,send。PULL方接收,recv。PUSH可以和多个PULL建立连接,PUSH发送的数据被顺序发送给PULL方。比如你PUSH和三个PULL建立连接,分别是A,B,C。PUSH发送的第一数据会给A,第二数据会给B,第三个数据给C,第四个数据给A。一直这么循环。最上面是产生任务的 分发者 ventilator中间是执行者 worker下面是收集结果的接收者 sink代码Ventilator.cpp#include <zmq.h>#include &l
2021-03-17 16:50:04 750
原创 ZeroMQ---订阅发布模式
概述ZeroMQ的订阅发布模式是一种单向的数据发布,当客户端向服务端订阅消息之后,服务端便会将产生的消息源源不断的推送给订阅者。一个发布者,多个订阅者的关系(1:n),当发布者数据变化时发布数据,所有订阅者均能够接收到数据并处理,这就是发布/订阅模式。发布者使用PUB套接字将消息发送到队列中,订阅者使用SUB套接字从队列中源源不断的接收消息。新的订阅者可以随时加入,但之前的消息是无法收到的。已有的订阅者可以随时退出。订阅者还可以增加“过滤器”用来有选择性的接收消息。代码pub.cpp#incl
2021-03-17 15:03:39 679
原创 ZeroMQ---请求回应模式01
ZeroMQZeroMQ简述zeromq是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ 把通讯的需求看成四类。其中一类是一对一结对通讯,用来支持传统的 TCP socket 模型,但并不推荐使用。常用的通讯模式只有三类:请求回应模型。由请求端发起请求,并等待回应端回应请求。请求端和回应端都可以是 1:N 的模型。通常把 1 认为是 server ,N 认为是 Client 。ZeroMQ 可以很好的支持路由功能
2021-03-16 19:38:49 295
转载 Linux编程中的坑-C++中exit和return的区别
https://blog.csdn.net/weixin_34148456/article/details/85900320?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3
2020-06-17 10:57:06 227
转载 单例模式 new方式下的内存释放
单例模式 内存释放方式new方式下的delete:https://blog.csdn.net/qq_34552886/article/details/70313613
2020-06-17 10:16:14 294
转载 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
关于socket阻塞与非阻塞情况下的recv、send、read、write返回值https://blog.csdn.net/wyyzsl212328/article/details/23860785欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本...
2020-04-20 20:29:45 150
原创 MySql的四种事物隔离级别
事物的基本要素: ACID。事物的并发问题:脏读: 事物A读取了B的数据,然后B回滚操作,那么A读取到的数据是脏数据。不可重复读: 事物A多次读取同一数据,事物B在事物A读取的过程中,对数据做了更改并提交,导致事物A多次读取同一数据时,结果不一致。幻读: 系统管理员A将数据库中所有学生成绩从具体分数改为ABCDE等级,但系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结...
2018-09-27 23:02:28 177
原创 最小的K个数--(快排法)
class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { vector<int> result; int len = input.size(); if (len == 0 ||...
2018-09-04 15:14:04 279
原创 二维数组(动态规划)
简要描述: 给定一个M行N列的矩阵(M*N个格子),每个格子中放着一定数量的平安果。 你从左上角的各自开始,只能向下或者向右走,目的地是右下角的格子。 每走过一个格子,就把格子上的平安果都收集起来。求你最多能收集到多少平安果。 注意:当经过一个格子时,需要一次性把格子里的平安果都拿走。 (1&lt;=N,M&lt;=50);每个格子里的平安果数量是0到1000(包含0和1000...
2018-08-08 16:59:29 4925 1
原创 质数因子
输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )int main(void){ long input; while (cin >> input) { while (input != 1) { for (int i = 2; i <= in...
2018-08-02 14:32:58 173
原创 十六进制的数值字符串,输出该数值的十进制字符串
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入)#include &lt;iostream&gt;#include &lt;string&gt;#include &lt;cmath&gt;using namespace std;int main(void){ string str; int i = 0, len, sum;...
2018-08-02 14:14:12 1198
原创 计算字符串最后一个单词的长度,单词以空格隔开
#include &lt;iostream&gt;#include &lt;string&gt;using namespace std;int Num(char *str){ if (str == nullptr) return 0; char *ptr = str; int num = 0, index = 0, n = 0; whi...
2018-08-01 15:54:58 1105
原创 一颗二叉搜索树,找出树中的第k大节点
最朴素的想法,中序遍历就是二叉搜索树的递增序列,那直接写出整棵树的中序遍历即可。class Solution{public: TreeNode* KthNode(TreeNode* pRoot, int k) { if (!pRoot || k < 0) return nullptr; vector<...
2018-08-01 13:48:08 4647 1
原创 Redis知识梳理
Redis是速度非常快的非关系型内存键值数据库,可以存储键和五种不同类型的值之间的映射。 键的类型只能为字符串,值支持五种数据类型为:字符串、列表、集合、有序集合、散列表。STRING set hello world OK get hello “world” del hello (integer) 1 get he...
2018-07-31 15:32:20 706
原创 I/O模型
I/O模型一个输入操作通常包括两个阶段: 1. 等待数据准备好 2. 从内核向进程复制数据unix下有5种I/O模型 - 阻塞IO - 非阻塞IO - IO复用 - 信号驱动式IO - 异步IO阻塞I/O应用进程被阻塞,直到数据复制到应用进程缓冲区才返回。 非阻塞式I/O应用进程执行系统调用时,内核返回一个错误码。应用进程可以继续执行,但需要不断的执行系...
2018-07-28 21:38:53 202
原创 字符串转为整数,实现atoi功能
atoi通过全局变量来区分返回0的情况。 如果是非法输入,返回0,并把这个全局变量设为特殊标志; 如果输入是”0”,则返回0,不会设置全局变量。enum Status { kValid = 0, kInvalid};int g_nStatus = kValid;int StrToInt(const char* str){ g_nStatus = kInvalid; ...
2018-07-28 15:30:12 383
原创 c++11获取异步任务结果,std::packaged_task和std::future
如果我们的主线程A希望新开辟一个线程B去执某个我们预期的任务并返回结 果。这时候,线程A可能正在忙其他的事情,无暇顾及B的结果,所以我们会很自然的希望能够在某个特定的时间获得线程B的结果。在 C++11 的 std::future之前,通常的做法是:创建线程A,在线程A启动任务 B,当准备完毕后发送一个事件,并将结果保存在全局变量中。主函数线程A正在做其他的事情,当需要结果的时候,调用一个线...
2018-07-27 16:14:47 789
linux的rpm软件安装的方法
2013-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人