- 博客(35)
- 收藏
- 关注
原创 【C++11】异步编程
本文带你学习C++11实现异步编程的机制:future、async、promise、packaged_task,并设计一个异步线程池。
2025-04-03 21:17:13
10763
19
原创 【Linux进程】理解进程地址空间
对于进程而言:每个进程都有一块一致且独立的内存;对OS而言:只需要将进程当前使用的数据加载到内存——利用了局部性原理。说了半天,这么做有什么好处呢?我们先来看看不这么做的坏处吧!直接给进程分配物理内存会有什么问题?可能会导致内存践踏,A进程不小心访问到B进程的资源,修改了其中内容,可能导致B进程宕机。如果需要由OS来进行控制,这大大增加了操作系统的管理难度,毫无疑问是会给它增加很多负担的。
2025-03-25 21:26:50
1005
3
原创 【网络层协议】NAT技术&&内网穿透
我们知道,IP地址(IPv4)是一个4字节32位的整数,那么一共只有2^32也就是接近43亿个IP地址,而TCP/IP协议栈规定,每台主机只能有一个IP地址,这就意味着,一共只有不到43亿台主机能接入互联网吗?实际上,由于一些特殊的IP地址(主机号全0代表网络号,主机号全1代表广播地址,127.*用于本地环回测试)的存在,IP地址实际数量要比这个数更小一些,并且IP地址并不是按主机台数分配的,每张网卡都需要配置一个或多个IP地址,这就导致了一个很尴尬的问题:IP地址不够用了!
2025-03-23 23:39:10
1147
原创 【传输层协议】TCP协议详解(下)
接下来我将分两篇文章,从四个部分带大家学习一些与TCP相关的基本概念和机制,首先我将带大家认识一下TCP报头字段的含义,然后了解TCP保证可靠性的一些机制,接下来是TCP进行效率优化的机制,最后是TCP与应用层相关的概念。本篇文章将带大家更加深入地理解TCP协议。
2025-03-14 15:45:23
702
2
原创 【项目设计】基于AMQP协议实现的简单消息队列
本项目是基于AMQP协议,模仿RabbitMQ设计的简单消息队列,使用Protobuf作为序列化框架,通过自定义应用层协议+muduo库完成网络通信,实用SQLite3进行数据持久化,在开发过程中用GTest进行单元测试。
2025-03-12 14:23:13
691
原创 【传输层协议】TCP协议详解(上)
接下来我将分两篇文章,从四个部分带大家学习一些与TCP相关的基本概念和机制,首先我将带大家认识一下TCP报头字段的含义,然后了解TCP保证可靠性的一些机制,接下来是TCP进行效率优化的机制,最后是TCP与应用层相关的概念。本篇文章将带大家初步认识TCP协议。
2025-03-06 02:10:10
762
原创 VSCode C/C++跳转到定义、自动补全、悬停提示突然失效
或许能解决你的“VSCode C/C++跳转到定义、自动补全、悬停提示突然失效”问题?
2024-10-18 22:04:33
1013
原创 【MySQL】基本查询(下):更新、删除
本文将带你了解mysql的增删查改中的:改、查,以及分组聚合的简单知识,并举了一些简单的例子帮助理解学习~
2024-10-10 08:59:53
502
原创 【算法专题】穷举vs暴搜vs深搜vs回溯vs剪枝
接着,我们开始考虑dfs函数所需要做的事情,对于决策树的每个节点,dfs要做的事情无非是:存放数组元素的情况,此时需要把当前数组元素存到path,然后递归调用自己,进入决策树的下一层;本题要求我们将全部为0的二叉树去掉,也就是剪枝,当我们举一个具体的例子进行模拟时,会发现,只关注于对其中一个子树的根节点进行剪枝,由于我们只去掉所有节点都是0的子树,所以需要先判断它的左子树是否被去掉,右子树是否被去掉,最后再判断根节点本身的值是否为0,如果这三个条件全部满足,我们需要告诉这个子树的父亲,该子树被去掉了。
2024-09-12 19:19:56
1339
原创 设计模式
工厂模式是创建型设计模式,提供了一种创建对象的有效方式,在工厂模式中,客户程序不需要了解具体对象是如何创建的,而是使用共同结构体指向新创建的对象,实现创建和使用的分离。抽象工厂模式提供一个接口,用于创建一系列相关的对象,无需指定具体的类,可认为是多个工厂方法模式的组合,用于创建一组相关的对象。:通过使用抽象工厂接口来创建一组相关的产品,而无需直接依赖于具体工厂或具体产品的类。:声明一个工厂方法,用于返回产品类型的对象,该方法是抽象方法,由具体工厂类实现。:继承工厂接口,实现工厂方法,返回具体产品类的实例。
2024-09-06 19:47:48
576
原创 【算法专题】字符串
本题要求我们找出最长的公共前缀,首先能想到的就是两两比较字符串,每次比较都找出最长公共前缀,当遍历完字符串数组后,我们就能够得到这个字符串数组的最长公共前缀了。本题的题目描述非常简单,就是给定两个二进制的字符串,实现二进制加法。这和我们在链表专题中,我们做过的两数相加实际上思路是类似的,我们同时从字符串末端开始遍历两个字符串,并把两个数和进位相加的结果存在变量t中,则由于是二进制加法,本位就是t%2,进位则是t/2,当遍历到其中一个字符串结束时,加零即可。
2024-08-11 22:02:20
658
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人