- 博客(67)
- 收藏
- 关注
原创 面试手撕-----生产者消费者模型
首先让我们回忆生产者消费者模型,其中生产者生产数据,消费者处理数据,两者通过一个共享的缓存区进行交互。其中涉及到多线程的线程同步问题,要保证当缓冲区满时生产者不会继续添加数据,缓冲区空时消费者不会尝试取数据,同时还要处理线程间的同步问题,避免竞态条件。
2025-04-04 20:28:35
284
原创 C++中的socket编程常用接口
socket()函数是进行网络编程的基础,它用于创建一个新的套接字(socket)。套接字是网络通信的端点,可以用于在不同计算机之间传输数据。
2025-03-23 15:28:02
792
原创 Linux中虚拟内存详解
并且,在进程运行过程中,操作系统会根据进程的运行状态和内存需求,动态地调整虚拟地址空间与物理内存之间的映射关系,比如将暂时不使用的页面置换出来,或者将需要的页面重新映射到物理内存中。上面的图可以看出在常见的基于页式内存管理的操作系统(如 Linux)中,进程的各个内存区域包括栈区、代码区、数据区等,通常是按照固定大小(一般为 4KB,不过不同系统可能有差异,也可能采用其他如 8KB 等页大小)划分成一个个的页,然后通过页表来映射到物理内存中同样大小的一个个页框(也是 4KB 等)。
2024-11-16 22:02:43
1360
原创 进程调度算法
如果是抢占式 SRTF,假设 P1 先执行了 2 个单位时间,此时 P2 到达,由于 P2 的剩余时间(3 个单位时间)小于 P1 的剩余时间(3 个单位时间),P2 会抢占 CPU。非抢占式 SJF 是当一个新进程进入就绪队列时,只有当前运行进程结束后,才会比较新进程和就绪队列中其他进程的运行时间,选择最短的运行;总的来说,短作业优先算法适用于存在大量不同执行时长任务的场景,尤其在短任务占比较大且对响应速度要求较高的情况下,能够有效提高系统对这些短任务的处理效率,提升整体性能和用户体验。
2024-11-13 22:19:06
733
原创 C++中volatile限定符详解
volatile是 C 和 C++ 中的一个类型限定符,它用于告诉编译器被修饰的变量具有特殊的属性,编译器在对该变量进行优化时需要特殊对待。以下是volatile。
2024-11-12 13:29:19
397
原创 Linux提供的定时器
定时器在许多场景中非常有用,尤其是在需要精确定时或定时执行某些任务的情况下。而Linux专门为定时器提供了一套定时器接口。
2024-07-24 01:22:49
925
原创 C++中的多路转接技术之epoll
就像是一个超级助理,帮你监控所有的订单系统,让你知道什么时候有新订单,什么时候订单完成,什么时候客户取消订单。它只会告诉你有变化的订单,而不是每次都汇报所有的订单状态,这样你就可以专注于处理重要的事情,而不用被不必要的信息干扰。:表示对应的文件描述符可以进行读取操作,或者对端正常关闭了(例如,对于一个 socket,这意味着有数据可以读取,或者对端关闭了连接)。epoll_data是一个联合体,在某些情况下,你可能只需要其中一种东西,当然我们可以看到其中有一个指针参数,这更是加大了灵活性,比如。
2024-07-21 22:50:43
1096
1
原创 C++中的socket编程常用接口
函数用于将一个套接字设置为被动模式,即它将成为一个服务器套接字,可以接受来自客户端的连接请求。函数是进行网络编程的基础,它用于创建一个新的套接字(socket)。对于服务器端套接字,这是必需的步骤,因为它指定了服务器将在其上监听连接请求的地址和端口。它从已完成连接队列中取出下一个连接,并为新的连接创建一个新的套接字。它用于将客户端的套接字连接到服务器的地址和端口。函数通常在客户端使用,它将客户端的套接字连接到指定的服务器地址和端口。函数通常在已经建立连接的套接字上使用,用于从对端接收数据。
2024-07-18 14:28:58
627
原创 正则表达式的详解带你认识正则表达式的意义
我们都知道协议通常通过添加固定的字符、报头、特定的数字等来定义数据的结构和格式。将正确的信息提取出来是十分重要的,而正则表达式可以用来描述和匹配这些固定的结构,从而提取出所需的信息。并且正则表达式还可以处理大量复杂的字符串。这篇文章将会带你彻底了解正则表达式。正则表达式是一种描述字符模式的特殊语法,广泛应用于文本搜索、替换和字符串验证。它可以匹配特定的字符序列,从而识别和处理文本中的特定模式。
2024-06-08 16:01:42
894
原创 Linux基础指令及其作用之压缩与解压
是一个常用的命令组合,用于解压缩由 gzip 压缩的 tarball 文件。是一个用于文件压缩和解压缩的工具。它主要用于减少文件的大小,方便存储和传输。压缩文件中的内容,并支持各种选项来控制解压缩过程,如指定解压目录、仅列出文件、测试文件等。命令的作用是解压缩一个 gzip 压缩的 tar 文件。例如,如果有一个名为。工具不仅能够压缩文件,还能够对压缩文件进行更新和管理。文件解压缩,并提取其中包含的文件和目录。是一个用于压缩文件和目录的工具,创建。工具的解压缩部分,用于解压缩。压缩的文件恢复到原始状态。
2024-05-31 21:52:35
1001
原创 Linux基础指令及其作用之网络操作
命令用于显示与网络相关的各种信息,如网络连接、路由表、接口统计、伪装连接(masquerade connections)等。它是一个强大的网络诊断和调试工具。:fe80::20c:29ff:fe68:8c9d ,前缀长度为 64,作用域为链路本地(Link)。:往返时间的均方根偏差(mean deviation)为 0.156 毫秒,表示往返时间的波动范围。是网络开发和调试的一个强大工具,适用于下载文件、测试 API 等多种任务。:IPv6 地址为 ::1,前缀长度为 128,作用域为主机(Host)。
2024-05-31 21:31:29
1291
原创 Linux基础指令及其作用之系统信息和管理
它的作用是列出一个二进制文件在运行时需要加载的动态链接库,以及这些库的路径。它能够报告文件系统的总空间、已用空间、可用空间和挂载点等信息,是系统管理员监控磁盘使用的重要工具。它能够递归地计算指定文件或目录所占用的磁盘空间,是系统管理员和用户监控磁盘使用的重要工具。命令用于显示系统的内存使用情况,包括物理内存、交换分区和内核缓存的使用情况。命令用于查找指定进程名对应的进程ID,如果有多个进程与该进程名匹配,则会列出所有匹配的进程ID。是一个用于查找指定进程名对应的进程ID(PID)的命令。
2024-05-31 15:22:22
1042
原创 Linux基础指令及其作用之文件内容查看和处理
硬链接是文件系统中的一个指向原始文件 inode 的新路径,它们与原始文件在磁盘上的存储位置相同,因此对硬链接或原始文件的修改都会影响到另一个。符号链接是一个特殊类型的文件,它包含了指向原始文件的路径,而不是原始文件本身。它在需要查看文件末尾部分的内容时非常有用,特别是查看日志文件的最新日志。命令会在指定的文件中搜索匹配模式的行,并将匹配到的行打印到标准输出。命令用于显示文件的开头部分。是一个非常强大的工具,特别适用于从文件或命令输出中查找和过滤特定的信息。的增强版,提供了更多的功能和更灵活的导航选项。
2024-05-31 14:37:15
1041
原创 Linux基础指令及其作用之文件和目录操作
目标文件或目录`:移动到的目标文件或目录的路径。命令还可以用于更改文件的访问时间戳或修改时间戳。是一个常用的命令,用于在 Linux 和类 Unix 系统上创建新目录。是一个用于创建空文件或更改文件时间戳的命令。命令是用于删除文件或符号链接的命令。是一个用于移动文件或重命名文件的命令。:要创建的新目录的名称。touch`:这是用于创建或更改文件时间戳的命令。源文件`:要移动或重命名的文件的路径或名称。:这是用于移动文件或重命名文件的命令。:要创建或更改时间戳的文件的名称。:这是用于复制文件和目录的命令。
2024-05-31 14:34:23
713
原创 C++中lambda表达式的使用及注意事项
在C++中一共有四种可调用对象,分别是**函数,函数指针,仿函数,和lambda表达式,本文将从lambda表达式的定义形式开始,到lambda表达式的使用场景,向你讲述lambda的使用及注意事项。
2024-05-02 11:30:26
982
原创 【c++_containers】10分钟带你学会list
本文将会从list的特性、模拟实现,与vector的对比带你熟练掌握list的使用
2023-10-06 22:35:35
986
11
原创 [C++_containers]10分钟让你掌握vector
通过基础的C++语法模拟实习vector,并提出其中存在的问题来带你彻底掌握vector的使用
2023-10-01 21:12:06
166
10
原创 Linux代码初试__进度条
在我们的日常生活中,进度条是十分常见的,比如在软件下载中,应用加载中等等~~~那么进度条有什么特点?他又如何实现,本文为你进行讲解
2023-09-04 23:29:35
1613
11
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人