想不到好名字了()
码龄2年
关注
提问 私信
  • 博客:41,269
    社区:1
    41,270
    总访问量
  • 80
    原创
  • 25,064
    排名
  • 407
    粉丝
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:天津市
  • 加入CSDN时间: 2023-02-15
博客简介:

D223546的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    605
    当月
    148
个人成就
  • 获得595次点赞
  • 内容获得12次评论
  • 获得600次收藏
  • 代码片获得116次分享
创作历程
  • 26篇
    2024年
  • 54篇
    2023年
成就勋章
兴趣领域 设置
  • 编程语言
    c++c语言
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++个人复习(4)

组件定义用途主要特性获取异步操作结果的对象获取异步操作的结果阻塞等待结果,检查结果状态设置异步操作结果的对象在线程中设置值,另一个线程获取设置值或异常,创建与future关联的对象可调用对象,封装任务与future关联封装任务并异步执行,获取结果封装任意可调用对象,调用后可以获取结果std::async异步执行函数的标准库函数简单启动异步任务并获取结果自动管理线程,支持执行策略:用于在不同线程间传递结果。它可以从异步操作中获取返回值。:用于设置一个值或者异常,这些值或异常会被对应的。
原创
发布博客 前天 18:44 ·
880 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

网络基础(4)IP协议

对于这个报文的第二行还没有进行说明。下面就来说明首先我们知道网络是分5层的(下图没有画硬件层):TCP可以向底层发送多个报文,由此网络层也就可以包装出多个报文,但是在数据链路层存在一个规定:至于原因在讲解数据链路层的时候进行说明。一般来说上层交下来一个报文就会封装一个数据帧。这个不能太大,到底是多大呢?在Linux中可以通过ifconfig指令查看,其中有一个字段叫做mtu这个eth0就是其中一个网络接口的名字。未来网络收发数据都是通过这个eth0来进行收发。
原创
发布博客 2024.11.19 ·
1048 阅读 ·
15 点赞 ·
0 评论 ·
20 收藏

网络协议(4)拥塞控制

之前已经说过了tcp也是会考虑网络的情况的,也就是当网络出现问题的时候tcp不会再对报文进行重传。当所有的用户在网络不好的时候都不会对丢失的报文进行重传。这样就会防止网络瘫痪。这样的机制也就是tcp会进行拥塞控制。
原创
发布博客 2024.11.18 ·
1154 阅读 ·
13 点赞 ·
0 评论 ·
23 收藏

个人C++复习(3)

通俗点讲就是数据在内存中的存放顺序。大端序:高字节存储在内存的低地址处,低字节存储在高地址处。例如,对于16进制数0x12345678,大端序在内存中的存储方式是:12 34 56 78。小端序:低字节存储在内存的低地址处,高字节存储在高地址处。对于同样的16进制数0x12345678,小端序在内存中的存储方式是:78 56 34 12。通过使用消息队列和工作线程的设计,可以有效地将所有操作调度到一个线程中执行,从而避免了多线程带来的复杂性和潜在问题。
原创
发布博客 2024.11.17 ·
1253 阅读 ·
44 点赞 ·
0 评论 ·
27 收藏

个人C++复习知识点(2)

适用于需要手动管理线程生命周期的传统多线程编程。jthread提供了更高层次的抽象,简化了线程管理,并引入了中断机制,使得编写和管理线程的代码更加安全和简洁。while (!// 请求中断return 0;需要注意的是虽然jthread提供了一些改善中断的接口,但是在标准库中没有真正的中断功能。适用于需要存储和传递多种可调用对象的场合。std::bind适用于需要固定某些参数或调整参数顺序的情况。Lambda 表达式适用于需要简洁、局部的可调用对象,并且可以方便地捕获外部变量的场合。
原创
发布博客 2024.11.17 ·
885 阅读 ·
14 点赞 ·
0 评论 ·
23 收藏

网络基础(4)传输层

简单说明了TCP,UDP协议以及三次握手四次挥手等
原创
发布博客 2024.11.16 ·
923 阅读 ·
25 点赞 ·
0 评论 ·
24 收藏

网络基础(3)https和加密

首先数据摘要等于数据指纹也就是两者是同一个东西。只不过摘要更加技术化一点,指纹更加形象一点。数字指纹(数据摘要),其基本原理是利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要(就是将你的数据经过哈希函数生成一串新的数据)。数据指纹并不是⼀种加密机制,但可以⽤来判断数据有没有被篡改。那么为什么数据指纹不算加密呢?因为这种方式并没有什么方法进行解密。也就是如果一个数据进行哈希了是没有什么方法还原的。既然不是用来加密的,这是用来干什么的呢?
原创
发布博客 2024.11.15 ·
1299 阅读 ·
23 点赞 ·
0 评论 ·
18 收藏

个人C++复习知识点(1)

在 C++ 中,函数参数的顺序可以作为重载的条件之一。通过不同的参数顺序,可以定义多个同名函数,从而提高代码的灵活性和可读性。然而,在使用函数重载时,需要注意参数类型、数量和顺序的组合,以避免二义性和潜在的错误。
原创
发布博客 2024.11.14 ·
1200 阅读 ·
28 点赞 ·
0 评论 ·
14 收藏

网络基础(2)http协议

以上是http协议的第一个知识点。通过上面的URL能够知道在URL中是存在很多的特殊字符的。在上面百度的获取资源的URL中可以看到是将bit通过get方法给了wd然后再将wd拼接到URL中的。那么如果我将URL中的特殊字符写到wd中会发生什么呢。可以看到wd中的内容就被编码成为了上图中的样子。所以在百度这里如果你的搜索中存在一些URL中的特殊字符,那么就会对这些特殊字符进行转化,转化成为上图中国的%3A%2B%2F%23%3F这个编码也就是urlencode和urldecode:
原创
发布博客 2024.11.14 ·
355 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

网络基础(2)简单socket包装,序列化与反序列

在去写代码之前,我们再去学习一些知识:首先在客户端和服务端建立联系之后,双方是处于平等的地位的,并不是只能由服务端向客户端发送信息,客户端也是可以向服务端发送信息的。双方是可以互发消息的,原因就是TCP是具有接收和发送缓冲区的。客户端和服务端都是具有发送和接收缓冲区的。我们先来看客户端,对于客户端而言是需要在用户态定义一个buff(这个buff形态各异,在之前的代码就是我们定义的一个一个的string/char bufff),也就是用户级缓冲区。
原创
发布博客 2024.11.13 ·
918 阅读 ·
22 点赞 ·
0 评论 ·
30 收藏

仿RabitMQ 模拟实现消息队列项目开发文档4(个人项目)

从这个项目能够知道的就是这个消息队列能够解决的就是忙先不均,起到负载均衡作用,并且是在各个不同的主机上,而不再是在一个主机上。首先明确我们所实现的项目:仿RabbitMQ实现一个简化版的消息队列组件,其内部实现了消息队列服务器以及客户端的搭建,并支持不同主机间消息的发布与订阅及消息推送功能(这里还应该有客户端的按需获取功能,也就是消费者客户端能够根据自己的需求从服务器上拉取消息过来)。
原创
发布博客 2024.11.12 ·
989 阅读 ·
26 点赞 ·
0 评论 ·
12 收藏

仿RabitMQ 模拟实现消息队列项目开发文档3(个人项目)

由此就提出了信道的概念,这个信道就是单独的一个为用户提供服务的通道,而不同的信道也是具有不同的功能的,加入某一个信道提供的功能为订阅了一个队列的消息,那么这个信道对应的客户端就是消费者,而如果另外一个信道提供的服务为发布一个消息,那么这个信道对应的客户端就是生产者,由此就产生了不同的两种角色,生产者和消费者。在消费者的管理模块那里就已经提到过信道的概念了,信道就是对连接的再次分解,让一个连接区分出不同的信道,然后不同的信道各自为一个客户端提供独特的服务,例如有的信道提供的服务就是分发一条消息。
原创
发布博客 2024.11.12 ·
659 阅读 ·
8 点赞 ·
0 评论 ·
28 收藏

仿RabitMQ 模拟实现消息队列项目开发文档2(个人项目)

项目需求分析核心概念现在需要将这个项目梳理清楚了,便于之后的代码实现。项目中具有一个生产消费模型:其中生产者和消费者的个数是可以灵活改变的,让系统资源更加合理的分配。消息队列的主逻辑和上面的逻辑基本一样,只不过我现在要做的这个生产者不再是本地的一个线程了,而是一个客户端,消费者也是一个客户端,生产者就是消息发布客户端,而消费者就是消息订阅客户端,而中间的就不是线程安全的阻塞队列了,而是一个消息队列服务器:消息队列服务器能够存储消息,消息发布客户端能够将消息发送到客户端上,而消
原创
发布博客 2024.11.11 ·
1042 阅读 ·
21 点赞 ·
0 评论 ·
9 收藏

仿RabitMQ 模拟实现消息队列项目开发文档1(个人项目)

ProtoBuf(全称Protocol Buffer)是数据结构序列化和反序列化框架,它具有以下特点: • 语⾔⽆关、平台⽆关:即 ProtoBuf ⽀持 Java、C++、Python 等多种语⾔,⽀持多个平台 • ⾼效:即⽐ XML 更⼩、更快、更为简单 • 扩展性、兼容性好:你可以更新数据结构,⽽不影响和破坏原有的旧程序,这个库是由谷歌完成的一个库,最后不破坏原有的旧程序可以理解为,这个库和原有的旧程序互相之间的独立性是比较高的。
原创
发布博客 2024.11.10 ·
682 阅读 ·
9 点赞 ·
0 评论 ·
25 收藏

负载均衡式在线oj项目开发文档2(个人项目)

下面就是思考这个表中具有哪些属性列了,首先题目的编号肯定是要具有的(number,类型int,long都是可以的),下一个属性列就是题目的标题(tittle,字符串)了,标题之后就是这个题目的难度了,下一个题目的难度(star字符串),下一个就是题目的描述,题目的描述一般都是长文本(text类型),然后就是预设给用户的代码,自然使用的也是长文本(text),然后是测试用例,依旧是长文本(text),之后就是题目的时间限制(int)和题目的空间限制了(int)已上面的属性列来进行表的创建。
原创
发布博客 2024.11.09 ·
1166 阅读 ·
20 点赞 ·
0 评论 ·
13 收藏

负载均衡式在线oj项目开发文档(个人项目)

个人负载均衡式在线oj项目开发博客上
原创
发布博客 2024.11.08 ·
1241 阅读 ·
22 点赞 ·
0 评论 ·
10 收藏

网络基础(1)网络编程套接字TCP,守护进程化

通过上面的代码我们已经知道了客户端和服务端能够使用read和write从网络中获取信息。IO类的函数,write/read在底层已经做了转网络序列的工作下一个信息和UDP和TCP协议的特点有关。首先UDP是用于数据报的,而TCP则是面向字节流的。那么这个用于数据报和面向字节流有什么不同呢?到目前为止,这两个东西在编码上的区别是很小的,但是从底层上来说这两个协议的实现是具有很大的不同的。
原创
发布博客 2024.04.30 ·
1076 阅读 ·
29 点赞 ·
0 评论 ·
29 收藏

网络基础(1)网络编程套接字UDP

要完成网络编程首先要理解原IP和目的IP,这在上一节已经说明了。也就是一台主机要进行通信必须要具有原IP和目的IP地址。
原创
发布博客 2024.04.30 ·
1639 阅读 ·
24 点赞 ·
0 评论 ·
8 收藏

网络基础(1)

我们都知道计算机是只认识0和1的,但是不同的机器对于这种0和1信息的识别也是不一样的,例如有的设备对于0和1信息的识别靠的是电流的频率,而有的设备对于0和1信息的识别靠的是电流的强弱,也就是每种品牌的电脑,内部是被0和1信息都是被供应商做好规定了的。磁盘的供应商有自己的协议,网卡有自己的协议。两个人在打电话,逻辑上两个人是直接在通电话,但是物理上我的声音是被我的电话接收,然后我的电话经过种种的处理,然后将处理过的信息传递给对面的电话机,对面的电话机在对接收的信息进行处理,才让两个人实现了电话的通信。
原创
发布博客 2024.04.06 ·
1160 阅读 ·
16 点赞 ·
0 评论 ·
29 收藏

简单线程池的实现

这样写有几个好处,当有好几个线程检测到这里的_instance为nullptr时,会都进入到第一个if中,然后在这里获取锁,而只有一个线程能够得到锁,然后去到第二个if中创建单例对象,之后这个线程会释放锁,其它线程获取到锁之后,此时_instance已经不是nullptr了自然就不会继续创建单例对象了。对于这个下限和上限的具体的数量,是根据业务情况而定的,这里就可以写一个配置文件,在配置文件中写明低水位线为多少,高水位线为多少,然后在构造函数中读取这个文件,将低水位线和高水位线的值获取到即可。
原创
发布博客 2024.03.29 ·
776 阅读 ·
11 点赞 ·
0 评论 ·
8 收藏
加载更多