小白要躺平
码龄3年
关注
提问 私信
  • 博客:28,302
    社区:1
    问答:18
    动态:513
    28,834
    总访问量
  • 43
    原创
  • 487,672
    排名
  • 291
    粉丝
  • 15
    铁粉

个人简介:小白学编程,要努力鸭

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2021-07-06
博客简介:

qq_59993282的博客

查看详细资料
个人成就
  • 获得45次点赞
  • 内容获得10次评论
  • 获得149次收藏
  • 代码片获得204次分享
创作历程
  • 30篇
    2023年
  • 17篇
    2022年
成就勋章
TA的专栏
  • 网站服务器项目研究
    9篇
  • 系统编程
    4篇
  • 数据库MySQL知识储备
    3篇
  • 我的必学基础
    1篇
  • C++知识整理
    9篇
  • 力扣题
    2篇
  • 排序算法
    1篇
兴趣领域 设置
  • 编程语言
    javac++c语言
  • 开发工具
    visual studiovimidea
  • 数据结构与算法
    算法数据结构
创作活动更多

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

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

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

操作系统内存管理

在虚拟内存管理中,每个进程拥有自己的页表,这样不同的进程可以有相同的虚拟地址,但由于使用不同的页表,它们会映射到不同的物理地址。此时,操作系统会介入,查找该虚拟页面的数据或代码,将其从磁盘加载到一个空闲的物理页面,并更新页表,建立虚拟页面到物理页面的映射关系。虚拟内存是一种抽象的内存概念,它允许程序访问比实际物理内存更大的内存空间,使得每个进程都认为它具有连续的内存空间,而不需要关心实际物理内存的大小和分布。虚拟内存是一种抽象的内存概念,它扩展了物理内存的大小,允许程序访问比物理内存更大的内存空间。
原创
发布博客 2023.07.31 ·
497 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

事务的概念及使用

事务 A 按 id>5 的条件进行多次查询,在多次查询中间,事务 B 插入了一条 id 为6的数据,事务 A 多次查询的结果集数量就会不同。在 SQL 标准中定义了四种隔离级别, 每一种级别都规定了一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。原子性(atomicity):事务是最小工作单元,不可再分,事务的所有操作要么全部提交成功,要么全部失败回滚,不可能只执行其中的一部分操作。隔离性(isolation):通常来说,一个事务所做的修改在最终提交前,对其他事务是不可见的。
原创
发布博客 2023.07.24 ·
162 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

DDL\DML

插入完整的行,所有字段,每一个字段都必须提供一个值,如果某个字段没有值,应该使用 NULL,每个字段必须以他们在表中定义的顺序给出。主键用来表示一个特定的行。更安全的方法是,在表名后的括号中给出字段名,values 中的值的顺序与前面给出的字段的顺序相同,一一对应。外键为表中的某一字段,该字段是另一表的主键值,外键用来在两个表的数据之间建立联结,一个表中可以有一个或多个外键。用于确保特定列或列组合的唯一性,被约束的列的值在整个表中是唯一的,唯一约束默认允许空值(null),因此多个空值不违反唯一约束。
原创
发布博客 2023.07.24 ·
496 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

单列模式多学两遍

方法中使用了局部静态变量。局部静态变量是在第一次执行该代码行时初始化,并且在程序的整个生命周期内保持其值,直到程序结束。这样的特性使得局部静态变量非常适合实现懒汉式单例模式,因为它们能够确保只有在第一次调用。懒汉式单例模式是一种延迟加载的单例模式,在需要时才创建实例。单例模式(Singleton Pattern,也称为单件模式),使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。当使用C++局部静态变量实现懒汉式单例模式时,我们在。
原创
发布博客 2023.07.21 ·
490 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

项目实战Qt网盘系统

转存失败重新上传取消转存失败重新上传取消背景:随着时代的发展,业务数据量的剧增及移动办公需求,人们对内存的需求越来越强,传统的存储产品,在容量及携带型日益不能满足人工的工作需求,网盘再此背景下应运而生。网盘是能够提供文件同步,备份及共享等服务的网络云存储平台。可以随时随地的把照片、音乐、视频、文档等轻松地保存到网盘,无须担心文件丢失。通过网盘,用户可以多终端上传和下载、管理、分享文件,一切就变得轻而易举。描述:随时随地上传下载、编辑和分享;搜索好友、加好友、聊天等要点:多线程。
原创
发布博客 2023.07.19 ·
2379 阅读 ·
2 点赞 ·
4 评论 ·
32 收藏

数据库连接池(七)

具体的,工作线程从数据库连接池取得一个连接,访问数据库中的数据,访问完毕后将连接交还连接池。从一般流程中可以看出,若系统需要频繁访问数据库,则需要频繁创建和断开数据库连接,而创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患。当线程数量大于数据库连接数量时,使用信号量进行同步,每次取出连接,信号量原子减1,释放连接原子加1,若连接池内没有连接了,则阻塞等待。在程序初始化的时候,集中创建多个数据库连接,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,更加安全可靠。
原创
发布博客 2023.07.18 ·
374 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

日志系统(六)

再具体点,有可能多个线程都在等待这个资源可用的信号,信号发出后只有一个资源可用,但是有A,B两个线程都在等待,B比较速度快,获得互斥锁,然后加锁,消耗资源,然后解锁,之后A获得互斥锁,但A回去发现资源已经被使用了,它便有两个选择,一个是去访问不存在的资源,另一个就是继续等待,那么继续等待下去的条件就是使用while,要不然使用if的话pthread_cond_wait返回后,就会顺序执行下去。答案是否定的,如果同时有两个或者两个以上的线程正在等待此资源,wait返回后,资源可能已经被使用了。
原创
发布博客 2023.07.18 ·
246 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

定时器处理非活动连接(五)

具体的,信号处理函数使用管道将信号传递给主循环,信号处理函数往管道的写端写入信号值,主循环则从管道的读端读出信号值,使用I/O复用系统调用来监听管道读端的可读事件,这样信号事件与其他文件描述符都可以通过epoll来监测,从而实现统一处理。接收信号的任务是由内核代理的,当内核接收到信号后,会将其放到对应进程的信号队列中,同时向进程发送一个中断,使其陷入内核态。信号,信号处理函数利用管道通知主循环,主循环接收到该信号后对升序链表上所有定时器进行处理,若该段时间内没有交换数据,则将该连接关闭,释放所占用的资源。
原创
发布博客 2023.07.17 ·
357 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

http连接处理(下)(四)

writev的返回值为已写的字节数,但这个返回值“实用性”并不高,因为参数传入的是iovec数组,计量单位是iovcnt,而不是字节数,我们仍然需要通过遍历iovec来计算新的基址,另外写入数据的“结束点”可能位于一个iovec的中间某个位置,因此需要调整临界iovec的io_base和io_len。是一个结构体,里面有两个元素,指针成员iov_base指向一个缓冲区,这个缓冲区是存放的是writev将要发送的数据。原代码的write函数不严谨,这里对其中的Bug进行了修复,可以正常传输大文件。
原创
发布博客 2023.07.15 ·
1749 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

主流数据库介绍,MySQL数据库基本操作

Oracle:全球领先的商业关系型数据库,拥有极强的稳定性、安全性和可扩展性,支持高可用、分布式架构,提供强大的数据分析和管理功能。SQL Server:微软开发的关系型数据库管理系统,适用于中小型企业应用,拥有可靠的性能、安全性和易用性。SQLite:轻量级的嵌入式关系型数据库,支持跨平台开发和部署,易于使用和集成,适用于小型应用和移动应用。数据库(Database,DB):按照特定的数据结构来组织、存储和管理数据的仓库。5、删除数据库:将已经存在的数据库清除,数据库中的数据也将被清除。
原创
发布博客 2023.07.14 ·
387 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

http连接处理(中)(四)

主状态机初始状态是CHECK_STATE_REQUESTLINE,通过调用从状态机来驱动主状态机,在主状态机进行解析前,从状态机已经将每一行的末尾\r
符号改为\0\0,以便于主状态机直接取出对应字符串进行处理。在报文中,请求头和空行的处理使用的同一个函数,这里通过判断当前的text首位是不是\0字符,若是,则表示当前处理的是空行,若不是,则表示当前处理的是请求头。接下来的字符是
,将\r
修改成\0\0,将m_checked_idx指向下一行的开头,则返回LINE_OK。
原创
发布博客 2023.07.14 ·
1994 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

http连接处理(上)(四)

我们期望的是一个socket连接在任一时刻都只被一个线程处理,通过epoll_ctl对该文件描述符注册epolloneshot事件,一个线程处理socket时,其他线程将无法处理,当该线程处理完后,需要通过epoll_ctl重置epolloneshot事件。状态机的当前状态记录在cur_State变量中,逻辑处理时,状态机先通过getNewPackage获取数据包,然后根据当前状态对数据进行处理,处理完后,状态机通过改变cur_State完成状态转移。其中,type_A是初始状态,type_C是结束状态。
原创
发布博客 2023.07.12 ·
811 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

半同步半反应堆线程池(三)

本章讲解线程池所涉及的基础知识,包括服务器基本框架、I/O模型、事件处理模式等。主要围绕服务器项目中涉及的知识进行介绍,若想了解更多相关知识,请参考《Linux下高性能服务器编程》。1.服务器编程基本框架主要由I/O单元,逻辑单元和网络存储单元组成,其中每个单元之间通过请求队列进行通信,从而协同完成任务。其中I/O单元用于处理客户端连接,读写网络数据;逻辑单元用于处理业务逻辑的线程;网络存储单元指本地数据库和文件等。2.五种I/O模型。
原创
发布博客 2023.07.12 ·
415 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

线程同步机制封装类(二)

pthread_cond_wait函数用于等待目标条件变量.该函数调用时需要传入 mutex参数(加锁的互斥锁) ,函数执行时,先把调用线程放入条件变量的请求队列,然后将互斥锁mutex解锁,当函数成功返回为0时,互斥锁会再次被锁上. 也就是说函数内部会有一次解锁和加锁操作.RAII的核心思想是将资源或者状态与对象的生命周期绑定,通过C++的语言机制,实现资源和状态的安全管理,智能指针是RAII最好的例子。信号量的取值可以是任何自然数,最常用的,最简单的信号量是二进制信号量,只有0和1两个值.
原创
发布博客 2023.07.11 ·
114 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

web服务器项目介绍(一)

通过请求行的解析我们可以判断该HTTP请求的类型(GET/POST),而请求行中最重要的部分就是URL部分,我们会将这部分保存下来用于后面的生成HTTP响应。OK,经过上述解析,当得到一个完整的,正确的HTTP请求时,就到了do_request代码部分,我们需要首先对GET请求和不同POST请求(登录,注册,请求图片,视频等等)做不同的预处理,然后分析目标文件的属性,若目标文件存在、对所有用户可读且不是目录时,则使用mmap将其映射到内存地址m_file_address处,并告诉调用者获取文件成功。
原创
发布博客 2023.07.11 ·
2607 阅读 ·
9 点赞 ·
0 评论 ·
35 收藏

Linux开发环境搭建

Linux开发环境搭建
原创
发布博客 2023.07.10 ·
164 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++11知识点总结(下)智能指针等

C++11知识点总结(下)左值引用、右值引用、智能指针等
原创
发布博客 2023.07.10 ·
165 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++11知识总结(中)

C++11知识总结(中)
原创
发布博客 2023.07.10 ·
121 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++11知识点整理(上)

C++11知识点总结(上)
原创
发布博客 2023.07.10 ·
77 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++知识总结(下)

C++知识整理(下)
原创
发布博客 2023.07.09 ·
93 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多