- 博客(19)
- 收藏
- 关注
原创 【算法笔记】高精度计算
输入两个大整数a,b,输出他们的和。(1<=a,b<=10^100)输入两个大整数a,b,输出他们的差。(1<=a,b<=10^100)输入两个大非负整数a和b。(1<=a,b<=10^100)输入两个大整数a和b。(1<=a,b<=10^100)输出格式(Format Output)题目描述 (Description)逐位从地位到高位相加,处理进位。主要进行的是大整数的四大计算;正确处理借位、进位。
2025-02-19 10:49:25
251
原创 线程池相关(C-C++-C++11&异步)
/ 线程池结构体// 任务队列// 容量// 当前任务个数// 队头 -- 取数据// 队尾 -- 放数据// 管理者线程ID// 工作线程IDint minNum;// 最小线程数量int maxNum;// 最大线程数量// 忙的线程个数// 存活的线程个数// 要销毁的线程个数// 整个线程池的锁// busyNum变量的锁// 任务队列是否满了// 任务队列是否空了// 是否销毁线程池(1-销毁)do {break;break;
2025-01-14 11:03:54
229
原创 设计模式--C++ 学习笔记
使用一个容器将成员存储起来(这里选择链表)在列表类中定义一个创建迭代器类的方法头文件 MyList.h// 定义一个链表节点// 双向链表public:// 创建迭代器对象函数private:源文件 MyList.cpp// 如果item是链表的头节点} else {m_count++;} else {
2025-01-03 14:50:52
684
原创 Linux高并发服务器开发(六)webserver服务器项目 个人总结
① 编译后生成“a.out”的exe文件,输入命令运行(我的Linux的ip地址为192.168.200.133)如本项目,在http_conn.h中定义了一些枚举类,定义了一些成员函数返回这些枚举类。在类外实现时(http_conn.cpp)需在枚举类和成员函数名前都加上类的作用域,不然会报错。② 在Windows网页中(或Linux的火狐浏览器)输入网址连接。memset(指向内存区域的指针,要设置的特定值,要设置的字节段);指向当前对象的地址(调用该成员函数的对象的地址)// 可能发生异常的语句。
2024-11-22 16:07:07
1163
1
原创 Linux高并发服务器开发(五)项目实战与总结
完成一个Web服务器项目典型的一次IO的两个阶段是什么?- 数据就绪和数据读写数据就绪:根据系统IO操作的就绪状态- 阻塞(调用IO方法的线程进入阻塞状态)- 非阻塞(不会改变线程的状态,通过返回值判断)数据读写:根据应用程序的内核的交互方式- 同步- 异步“在处理IO的时候,阻塞和非阻塞都是同步IO,只有使用了特殊的API才是异步IO。同步阻塞非阻塞异步LinuxWindows.NETAIOIOCP。
2024-08-30 18:06:26
992
原创 Linux高并发服务器开发(四)Linux网络编程
当帧到达目的主机时,将沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据, 以获取所需的信息,并最终将处理后的帧交给目标应用程序。这个过程称为分用(demultiplexing)。分用是依靠头部信息中的类型字段实现的。所谓 socket(套接字),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。
2024-06-17 16:29:19
1040
1
原创 Linux高并发服务器开发(三)Linux多线程开发
与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)进程是 CPU 分配资源的最小单元,线程是操作系统调度执行的最小单元。线程是轻量级的进程(LWP - Light Weight Process),在 Linux 环境下线程的本质仍是进程。
2024-03-31 17:23:18
2017
1
原创 Linux高并发服务器开发(二)Linux多进程开发
五态模型程序是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程:进程 是正在运行的程序的实例。是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。是操作系统动态执行的基本单元。单道程序 -- 在计算机中只允许一个的程序运行;多道程序 -- 在计算机内存中同时存放几道相互独立的程序,该技术引入的根本目的是为了提高CPU的利用率。时间片timeslice是操作系统分配给每个正在运行的进程微观上的一段CPU时间。时间片由操作系统内核的调度程序分配给每个进程。并行parallel。
2024-03-25 09:09:10
1745
1
原创 Linux高并发服务器开发(一)Linux系统编程入门
库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,提供给使用者一些可以直接拿来用的变量、函数或类库是一种特殊的程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行库文件有两种:静态库和动态库(共享库)。静态库在程序的链接阶段被复制到了程序中;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用库的好处是:1、代码保密;2、方便部署和分发。
2023-08-04 23:30:56
259
1
原创 Linux学习笔记 -- 日志管理篇
日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等日志安全:日志记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹日志是用来记录重大事件的工具。
2023-07-27 12:59:31
176
1
原创 Linux学习笔记 -- shell编程
Linux shell 中的变量分为 系统变量和用户自定义变量echo $HOME -- 显示当前家目录显示当前shell中的所有变量:set定义变量:变量=值(中间不要打空格)撤销变量:unset 变量声明静态变量:readonly变量(不能被unset)案例:定义变量的规则1. 变量名称可以由字母、数字和下划线组成,但是不能以数字开头2. 等号两边不能有空格3. 变量名称一般习惯为大写,这是一个规范将命令返回值赋给变量1. A=`data` ,运行里面的命令,并把结果返回给变量A。
2023-07-24 18:01:50
208
原创 linux学习笔记 -- 实操篇
Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者、所在组、其他组的概念举例说明 --> ls -l 中显示的内容如下:-rwxrw-r-- 1rootroot(第一个root是abc这个文件的所有者 -- 用户;第二个root是abc的所在组 -- 组)rwxrw-r--0~9 位说明1.第0位确定文件类型(d, -, l, c, b)l是链接,相当于windows 的快捷方式d是目录,相当于windows 的文件夹。
2023-06-29 13:28:36
178
1
原创 linux学习笔记 -- 基础篇
Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界认可,目前很多企业级项目都会部署到Linux/unix系统上常见的操作系统(Windows、IOS、Android、MacOS、Linux、Unix)Linux主要发行版:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSuSE...采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录;“Linux下一切皆文件”;
2023-06-21 11:26:01
159
原创 C++ primer 笔记
有迭代器的类型同时返回迭代器成员:如,end成员返回指向容器“尾元素的下一个位置(on past the end)”的迭代器,即该迭代器没有什么实际含义,,只是一个标记。执行对象的拷贝操作时,拷入和拷出的对象必须具有相同的底层const资格,或两个对象的数据类型必须能够转换。两个指向同一个容器中的元素或者尾元素的下一个位置的迭代器相减,所得结果是两个迭代器的距离,类型是名为diffence_type的带符号整数型string和vector都定义了difference_type,距离可正可负。
2023-05-30 00:20:16
154
1
原创 C++学习笔记(二)-- 兼谈对象模型
sizeof(reference) = sizeof(x) -- object和其reference的大小相同,地址也相同。non-explict-one-argument constructor,不清晰的单参数构造函数 ----------2⃣️。通过指针调用虚函数时,是动态绑定dynamic binding -- 虚机制。2.指针向上转型动作;conversion function, 转换函数 ---------1⃣️。若1⃣️和2⃣️并存,可能会有二义性/多条路径(函数)实现 -- error。
2023-05-23 22:28:52
163
1
原创 STL标准库和泛型编程--学习笔记-- level0:使用标准库
STL六大部件(Components):容器Containers 分配器Allocators 算法Algorithms 迭代器Iterators 适配器Adapters 仿函数Functors / Functor Adapters//六大部件在程序中的体现//使用了容器,分配器(注:此处可以不声明allocator,源代码有默认使用分配器)//选用了count_if算法:计算出符合该条件的元素有几个。
2023-05-05 22:37:44
108
1
原创 C++学习笔记:友元(类做友元)
GoodGay类中,包含一个Building类的指针,设置函数visit()来访问building中的属性。(类做友元,即在另一个类中“声明”这个类,加上关键字friend,即可访问所有属性。3、类内函数在类外写函数功能:记得加作用域。e.g 好朋友访问你的房间。
2023-03-27 17:49:38
470
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人