自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 每日一练 3. 无重复字符的最长子串

给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。1因为无重复字符的最长子串是"b",所以其长度为 1。3因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。

2025-03-20 15:50:15 157

原创 每日一练 2.两数相加

给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

2025-03-20 09:21:00 268

原创 每日一练 1. 两数之和

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。[0,1]因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。[1,2][0,1]

2025-03-19 16:41:01 237

原创 IO多路复用及其机制(3) epoll()

epoll 是 Linux 高性能网络编程的核心技术之一,它通过高效的事件通知机制解决了传统 select 和 poll 的性能瓶颈,使网络编程从IO驱动进化到事件驱动,推动了高并发服务器的发展。其设计体现了操作系统对现代网络应用的深度优化,是构建高性能、高扩展性网络服务的基石。

2025-03-19 16:26:47 1101

原创 每日一练 插入区间

给你一个按照区间起始端点排序的区间列表intervals,其中表示第i个区间的开始和结束,并且intervals按照starti升序排列。同样给定一个区间表示另一个区间的开始和结束。在intervals中插入区间,使得intervals依然按照starti升序排列,且区间之间不重叠(如果有必要的话,可以合并区间)。返回插入之后的intervals。你不需要原地修改intervals。你可以创建一个新数组然后返回它。这是因为新的区间[4,8]与重叠。

2025-03-18 23:16:56 136

原创 每日一练 合并区间

以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].[[1,5]]区间 [1,4] 和 [4,5] 可被视为重叠区间。

2025-03-18 14:10:39 240

原创 每日一练 搜索插入位置

题目来自力扣。仅对本人代码练习过程作记录。

2025-03-16 23:35:16 152

原创 每日一练 寻找数组的中心索引

题目来自力扣。仅对本人代码练习过程作记录。给你一个整数数组 nums ,请计算数组的中心下标。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:中心下标是 3。

2025-03-16 23:35:09 349

原创 IO多路复用及其机制(2) poll()

POLLIN:数据可读。POLLOUT:数据可写。POLLERR:发生错误。POLLHUP:连接挂起。POLLNVAL:文件描述符未打开。Poll是一种用于多路复用I/O操作的系统调用,允许程序同时监控多个文件描述符的状态,以非阻塞方式处理多个I/O事件。其历史意义在于,它为解决传统I/O操作中的阻塞问题提供了一个基础方法,尤其在网络编程和高并发应用中得到了广泛应用。然而,Poll的主要缺陷在于它需要每次遍历所有文件描述符,这导致在大量连接的情况下性能严重下降。

2025-03-15 13:01:59 604

原创 IO多路复用及其机制(1) select()

Select是早期 Unix/Linux 系统中实现 I/O 多路复用的基础机制,它通过一个位图管理多个文件描述符,允许程序同时监听多个 I/O 事件(如可读、可写、异常等)。它的历史意义在于首次引入了 I/O 多路复用的概念,为后续更高效的机制(如 Poll 和 Epoll)奠定了基础。然而,Select 存在明显的缺陷:一是文件描述符数量有限(通常为1024),无法满足高并发需求;二是每次调用都需要将文件描述符集合从用户空间拷贝到内核空间,且返回时需要遍历所有描述符,性能较低。

2025-03-15 13:01:04 1332

原创 文件描述符的分配与重用

文件描述符的分配遵循最小可用原则。关闭文件描述符后,内核可能会立即重用或延迟重用该文件描述符。

2025-02-28 19:31:34 501

原创 文件描述符与文件——对“一切皆文件,一切皆文件描述符”的理解

一切皆文件”是资源抽象的哲学,将所有资源视为文件。“一切皆文件描述符”是资源操作的实践,所有资源的访问都通过 fd 实现。这句话的本质是通过文件描述符,Linux 将资源的多样性与用户接口的统一性完美结合,既简化了开发,又保持了系统的灵活性。

2025-02-28 19:02:45 1112

原创 【网络io与io多路复用(3)】 Linux与文件描述符(FD)

文件描述符是一个非负整数(int类型),用于标识一个打开的文件或I/O资源。它是操作系统内核为每个进程维护的一个索引,指向内核中的文件表项。

2025-02-28 15:45:44 661

原创 网络io与io多路复用(2) 多线程服务器实现多客户端连接

本文通过实现一个多线程服务器,解决了单客户端连接时终端卡死的问题,成功支持多客户端连接和消息收发。通过为每个客户端连接创建独立线程,服务器能够同时处理多个客户端请求,并将接收到的数据原样返回。然而,这种“一请求一线程”的模型存在线程创建和销毁开销大、线程数量限制、上下文切换频繁、线程安全问题、资源管理复杂、扩展性差以及调试维护困难等缺点。为应对高并发场景,建议采用线程池、事件驱动模型或协程等更高效的替代方案。

2025-02-26 16:29:50 1320

原创 【Linux C/C++开发-高性能网络】网络io与io多路复用(1)

本文通过实践代码演示了如何创建并管理TCP连接,并进一步说明了文件描述符与网络I/O的紧密关系。

2025-02-26 13:08:57 598

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除