自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux:多线程(三.POSIX信号量、生产消费模型、线程池、其他常见的锁)

1.POSIX信号量1.1引入1.2回顾加深理解信号量1.3信号量的操作接口2.基于循环队列的生产消费模型2.1循环队列2.2整个项目3.线程池可变参数的处理项目内容单例模式(线程安全的懒汉线程池)4.STL、智能指针是否线程安全5.其他,常见的各种锁自旋锁读者写者问题逻辑过程接口介绍

2024-08-12 21:43:04 853 1

原创 Linux:多线程(二.理解pthread_t、线程互斥与同步、基于阻塞队列的生产消费模型)

1.理解Linux下线程--理解tid2. Linux线程互斥2.1相关概念2.2引|入问题分析问题解决思路2.3Linux中互斥量/互斥锁(mutex)接口介绍开始解决问题3.互斥量/互斥锁实现原理探究4.可重入与线程安全5.死锁6.线程同步6.1条件变量(Condition Variable)6.2接口介绍7.生产者消费者模型阻塞队列(BlockingQueue)一个实际应用的例子

2024-08-07 17:19:07 981 2

原创 Linux:多线程(一.Linux线程概念、线程控制——创建、等待、退出、分离,封装一下线程)

1. Linux线程概念1.1概念1.2线程的理解Linux中线程设计的巧思1.3Linux线程VS进程1.4调度与轻量级进程1.5程序如何划分(重拾页表、见一下L;WP)2.线程控制2.1引言与原生库2.2线程创建pthread create()与pthread self()线程的特殊情况2.3线程等待pthread join()函数2.4线程退出pthread exit()函数pthread cancel(函数2.5线程分离基本概念pthread detach 函

2024-08-01 16:24:40 1193 1

原创 Linux:进程信号(二.信号的保存与处理、递达、volatile关键字、SIGCHLD信号)

1.信号保存1.1递达、未决、阻塞等概念1.2再次理解信号产生与保存1.3信号集操作函数sigset_t类型sigprocmask系统调用sigpending系统调用2.信号的处理/递达2.1信号处理时机与过程2.2用户态和内核态2.3再看进程地址空间谁来运行OS2.4信号的捕捉-sigaction()函数3.补充知识3.1可重入函数3.2volatile关键字3.3 SIGCHLD信号

2024-07-25 13:04:22 1370 3

原创 Linux:进程信号(一.认识信号、信号的产生及深层理解、Term与Core)

1.认识信号进程看待信号方式2.信号的产生2.1信号的处理的方式 --- signal()函数2.2kil指令产生信号2.3键盘产生信号2.4系统调用发送信号 -kil系统调用、raise()和abort()库函数2.5软件条件产生信号2.6异常产生信号3.信号产生的深层理解键盘产生信号异常产生信号4.Term与Corecore文件

2024-07-23 08:30:29 2294 32

原创 Linux:进程间通信(二.共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)

1.System V共享内存1.1相关函数介绍写个小项目项目规划Cnmm.hppShmClient.cppPipeServe.cpp1.2指令查看与删除2.System V消息队列消息队列的原理相关函数3.System V 信号量3.1概念3.2周边知识4.内核中

2024-07-09 20:30:56 1711 35

原创 Linux:进程间通信(一.初识进程间通信、匿名管道与命名管道、共享内存)

1.认识进程间通信2.管道2.1匿名管道2.2pipe()函数 一创建匿名管道2.3匿名管道的四种情况2.4管道的特征3.基于管道的进程池设计4.命名管道4.1引入与性质4.2命令行创建4.3程序中创建命名管道写个小项目项目规划Cnmm.hppPipeClient.cppPipeServe.cpp5.System V共享内存5.1相关函数介绍

2024-07-05 22:42:24 1272 28

原创 Linux:基础IO(三.软硬链接、动态库和静态库、动精态库的制作和加载)

1.软硬链接1.1硬链接1.2软链接使用场景2.动态库和静态库1.1回顾1.2静态库的制作和使用为什么要有库制作者角度ar指令一提取静态库文件gcc-l-L 来使用自己的静态库1.3动态库制作和使用形成 .o文件与生成共享库使用makefile文件整合操作开始使用库1.4完善动态库过程gcc -l拷贝文件简化选项解决运行找不到问题3.理解动态库的加载3.1系统角度3.2编址3.3一般程序的加载3.4动态库的加载

2024-06-24 22:01:04 2122 30

原创 Linux:基础IO(二.缓冲区、模拟一下缓冲区、详细讲解文件系统)

本文章的主要内容:1.缓冲区1.1概念1.2作用与意义2.语言级别的缓冲区2.1刷新策略2.2具体在哪里2.3支持格式化3.自己来模拟一下缓冲区3.1项目文件规划3.2mystdio.h3.3mystdio.c3.4test.c4.文件系统4.1磁盘机械结构4.2磁盘的物理存储4.3磁盘的逻辑存储4.4文件系统5.文件名5.1再看文件的增删改查

2024-06-16 20:55:21 2098 33

原创 Linux:基础IO(一.C语言文件接口与系统调用、默认打开的文件流、详解文件描述符与dup2系统调用)

1.基础认识!2.再识c语言中文件接口2.1fopen()与fclose()2.2文件操作函数3.三个默认打开的文件流4.相关系统接口4.1open()4.2umask()函数4.3close()、write()、read()5.文件描述符5.10、1、25.2底层6.文件描述符的分配规则重定向-dup20)系统调用7.Linux中一切皆文件

2024-06-12 08:16:45 1344 35

原创 Linux:进程控制(二.详细讲解进程程序替换)

1.进程程序替换1.1概念1.2原理1.3使用一个 exec 系列函数函数execl()结论与细节2.多进程时的程序替换3.其他几个exec系列函数也可以调用其他语言的程序想要生成两个可执行文件的makefile

2024-05-29 00:46:58 1694 34

原创 C++进阶:C++11(列表初始化、右值引用与移动构造移动赋值、可变参数模版...Args、lambda表达式、function包装器)

1.统一的列表初始化1.1(}初始化1.2 initializer listpair的补充2.声明相关关键字2.1auto2.2decltype3.右值引用和移动语义3.1左值与右值3.2左值引用与右值引用3.3右值引用的场景与意义移动构造移动赋值引用性质与结论(万能引用、完美转发)4.新的类功能4.1默认构造函数4.2关键字default与delete5.可变参数模板展开参数包,容器的emplace back()和insert6.lambda表达式6.1引入6

2024-05-24 22:03:03 1245 33

原创 Linux:进程地址空间、进程控制(一.进程创建、进程终止、进程等待)

1.程櫚又序地址空间知识点总结上述空间排布结构是在内存吗?程地址空间引入)2.进程地址空间明确几个点进程地址空间实质图示过程2.1进程地址空间意义3.创建进程3.1fork()函数创建子进程补充写时拷贝4.进程终止4.1进程退出场景退出码进程出现异常4.2进程常见退出方法4.2.1正常退出4.2.2异常退出进程最终执行情况4.3 OS会做什么进程创建时:进程终止时:5.进程等待5.1必要性5.2进程等待的方法5丬幽.2.1 wait()方法5.2.2wa

2024-05-22 23:32:46 1363 27

原创 Linux:进程概念(四.main函数的参数、环境变量及其相关操作)

1main()函数的参数1.1bash处理命令行1.2利用上述性质,写一个计算器2.环境变量2.1基本概念2.2为什么要有环境变量(意义)2.3常见的环境变量查看环境变量echo指令一打印输出文本PATH2.4环境变量相关的命令本地变量2.5代码获取环境变量2.6添加或者修改环境变量2.7 最一开始环境变量哪里来的

2024-05-19 00:52:31 1578 32

原创 C++进阶:红黑树介绍及模拟实现(图示详解过程)

1.红黑树介绍约束规则2.项目文件规划3.整体框架(节点和Tree)4.RBL树的新节点插入4.1 叔叔节点存在且为红4.2 叔叔节点不存在4.3叔叔节点存在而且为黑(单旋情况,左子树的左,和右子树的右)4.4叔叔节点存在而且为黑(双旋情况,左子树的右,和右子树的左4.5完整版Insert()5.中序方便过会测试6.编写函数看是否满足要求7.测试8.全部代码8.1 RBTree.h8.2 test.cpp

2024-05-14 23:31:07 1230 2

原创 C++进阶:AVL树详解及模拟实现(图示讲解旋转过程)

之前在搜索二叉树最后早就埋下伏笔,来介绍AVL树和红黑树,今天就先来第一个吧

2024-05-13 18:25:02 1036 28

原创 Linux:进程概念(三.详解进程:进程状态、优先级、进程切换与调度)

1.Linux中的进程状态1.1前台进程和后台进程运行状态睡眠状态磁盘休眠状态停止状态ki指令一向进程发送信号死亡状态2.僵尸进程2.1僵尸状态2.2僵尸进程2.3僵尸进程危害3.孤儿进程4.进啾程的优先级概念查看进程优先级PRI(优先级)和NI(nice)更改nice来间接改变优先级5.进程其他重要概念6.进程的切换与调度进程切换进程调度

2024-05-11 11:53:38 1761 37

原创 Linux:进程概念(二.查看进程、父进程与子进程、进程状态详解)

1.查看进程1.1准备工作1.2 指令:ps一显示当前系统中运行的进程信息1.3查看进程属性1.4通过 /proc 系统文件夹看进程2.父进程与子进程2.1介绍2.2getpid() \getppid()2.3 fork()函数-通过系统调用创建进程fork()使用fork()函数3.进程状态3.1进程排队3.2教材上进程状态的表述--运行、阻塞、挂起运行阻塞挂起3.3Linux中状态初步认识

2024-05-06 23:17:07 5535 45

原创 Linux:冯诺依曼体系结构、操作系统、进程概念(一.初识进程)

操作系统的设计目的是管理计算机系统的软硬件资源,为用户程序提供执行环境。它通过对资源的描述和组织,以及提供系统调用和库函数的方式,来实现对计算机系统的管理和控制。从上到下是不可以发生越级访问。不可以绕过操作系统操作系统从头到尾是贯穿的。

2024-04-28 18:54:27 2772 47

原创 Linux:常用软件、工具和周边知识介绍

Yum是Linux系统中用于管理软件包的工具,类似于手机上的应用商店。是基于 RPM(Red Hat Package Manager)的系统,用于管理 RPM 软件包 ,它提供了一种方便的方式来搜索、下载、安装和卸载软件包,使得软件的管理变得简单而高效。安装软件的方式:源代码安装:需要手动下载源代码并进行编译安装,比较繁琐,需要处理依赖关系。RPM包直接安装:可以直接使用RPM包进行安装,但是需要手动处理依赖关系,不够方便。

2024-04-20 10:36:24 1733 38

原创 C++进阶:详细讲解容器set与map(pair、multiset、multimap)

上次介绍了搜索二叉树为了介绍后面的AVLTree和红黑树,我们要进行一些铺垫,就是set与map的介绍啦

2024-04-09 12:15:13 2174 46

原创 Linux:权限相关知识详解

通常被称为"用户(User)"、"组(Group)“和"其他(Others)”。这是在 Linux 和类 Unix 操作系统中用于管理文件和目录权限的基本概念。

2024-03-26 19:36:25 2857 61

原创 C++进阶:二叉搜索树介绍、模拟实现(递归迭代两版本)及其应用

这次就来介绍二叉搜索树,和模拟

2024-03-20 17:06:54 1757 50

原创 C++进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解)

摘要:多态是面向对象编程中令人着迷的概念,通过虚函数实现不同对象对同一消息的不同响应。C++11的`override`和`final`关键字增强了虚函数的重写机制。重载、覆盖和隐藏让代码更具灵活性和可扩展性。抽象类为定义接口和规范派生类行为提供了有力工具。虚函数的原理涉及虚函数表,实现动态绑定,让程序更具扩展性。单继承和多继承中的虚函数表展现了面向对象编程的精妙之处。

2024-03-16 14:19:58 3444 62

原创 探索Linux世界:基本指令(文件查看、时间相关、grep、打包压缩及相关知识)

上次稍微介绍了一下Linux和一些基本指令,今天继续常用指令的介绍

2024-03-13 11:48:03 2204 57

原创 C++进阶:详细讲解继承

今天给大家带来继承的知识:1.继承的概念和定义1.1继承的概念1.2继承的定义1.2.1继承的格式1.2.2再讲访问限定符(详讲protected)1.2.3继承基类成员三种访问方式2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数4.1构造函数4.2重载=和析构函数5.继承与友元6.继承与静态成员7.复杂的菱形继承及菱形虚拟继承7.1单继承、多继承和菱形继承7.2解决菱形继承7.3解决菱形继承原理8.继承和组合

2024-03-10 10:56:57 1612 53

原创 探索Linux世界:初次接触和基本指令(文件操作)

深入研究了几个关键的Linux命令,包括文件和目录的列举、切换目录、创建和删除文件与目录等基础操作。通过介绍路径知识和手册页面的使用,帮助读者迅速上手

2024-03-04 18:05:15 3203 75

原创 C++初阶:模版相关知识的进阶内容(非类型模板参数、类模板的特化、模板的分离编译)

1.非类型模版参数2.模板的特化2.1模版特化引入和概念2.2函数模版特化2.3类模板特化2.3.1全特化2.3.1偏特化3.模板分离编译3.1分离编译概念3.2模板的分离编译分析原因

2024-02-29 16:37:02 1927 60

原创 c++:vector的相关oj题(136. 只出现一次的数字、118. 杨辉三角、26. 删除有序数组中的重复项、JZ39 数组中出现次数超过一半的数字)

题目分享

2024-02-26 17:06:53 1218 50

原创 C++初阶:容器适配器priority_queue常用接口详解及模拟实现、仿函数介绍

这次的内容介绍:1.priority_queue的介绍和使用1.1priority_queue的初步介绍1.2priority_queue的使用1.3进一步补全介绍2.仿函数/函数对象讲解3.模拟priority_queue文件规划和一览3.1模拟priority_queue(priority_queue.h)3.2测试 (test.cpp)

2024-02-24 17:20:37 2281 50

原创 C++初阶:容器适配器介绍、stack和queue常用接口详解及模拟实现

1.stack的初步介绍2.stack的使用3.queue的初步介绍4.queue的使用5.容器适配器5.1含义5.2STL标准库中stack和queue的底层结构6模拟stack和queue文件规划和一览6.1模拟stack (stack.h)6.2模拟queue (queue.h)

2024-02-18 13:03:36 2276 71

原创 C++初阶:适合新手的手撕list(模拟实现list)

1.基本结构与文件规划2.空参构造函数 (constructor)3.完善迭代器 (iterator) (begin0,end0)4.List Capacity (size0,empty0)4.增删改查(push back,pop back,pop front,push front,insert,erase)6.clear () 和swap ()7.完善构造函数7.1list (size type n, const value_type& val = value_type0);7.2利用迭代

2024-02-16 07:48:19 2208 64

原创 C++初阶:容器(Containers)list常用接口详解

这次的内容:1.list的初步介绍2.list的定义 (constructor)3.list迭代器 ( iterator )4.string的三种遍历4.1迭代器4.2范围for循环5. list capacity6.list element access7.list modifiers

2024-02-13 10:23:51 2842 62

原创 C++初阶:适合新手的手撕vector(模拟实现vector)

今天给大家带来的内容:1.基本结构与文件规划2.空参构造函数 (constructor)4.基本函数 (size,capacity0,resize0,reserve0)4.增删改查(push back,pop back,insert,erase)5.在实现Insert和erase时迭代器失效问题6.重载7.完善构造函数7.1vector (size type n, const value type& val =value_type0);7.2利用迭代器进行构造7.3拷贝构造8.重载=

2024-02-10 21:20:35 1649 18

原创 C++初阶:容器(Containers)vector常用接口详解

今天的主要内容:1.vector的初步介绍2.vector的定义 (constructor)3.vector迭代器 ( iterator4.vector的三种遍历4.1正常for循环4.2范围for循环4.3两种迭代器(正向和反向)5.vector扩容相关 (resize和reserve)5.2reserve05.2resize()6.vector 增删查改6.1push_back和pop back6.2find、Insert、 erase6.3swap

2024-02-08 07:00:43 2180 18

原创 DockerUI如何部署结合内网穿透实现公网环境管理本地docker容器

DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基于容器安装方式,部署方便高效,浏览和维护docker单节点或集群节点worker和manager。DockerUI具有易于使用的界面。它不需要记住 docker 指令。只需下载镜像即可立即加入并完成部署。使用DockerUI并结合cpolar内网穿透可以更加轻松的管理docker和swarm,实现后台公网访问并管理,视觉性更加直观,后台开发更加便利。

2024-02-05 21:01:45 6213 57

原创 C++初阶:适合新手的手撕string类(模拟实现string类)

大致内容如下:1.基本结构与文件规划2构造函数 (constructor)2.1构造函数2.1.1无参有参分开2.1.2利用缺省参数合起来2.2拷贝构造2.3模拟c str0函数3.析构函数 (destructor)4.operator=5.迭代器 (iterator)6.1size0与capacity06.2 reserve7. modify7.1push_back0、append0和operator+=7.2clear0和swap08.access (operatorll)9

2024-02-04 08:41:03 1987 54

原创 C++初阶:初识STL、String类接口详细讲解(万字解析)

1.STL介绍1.1概念(标准模板库)1.2版本问题(主流有4个)1.3 STL六大组件2.string类的基本介绍3.string类对象的构造4.访问及遍历操作4.1operator[] ([]加下标)4.2基于范围for4.3使用迭代器(最推荐使用)5.string的迭代器 (lterator)5.1介绍5.2 begin () 和end ()(正向和常正向)5.3rbegin () 和rend ()(反向和常反向)6.string类对象的容量操作6.1sizeleng

2024-02-02 08:40:26 1595 24

原创 C++初阶:入门泛型编程(函数模板和类模板)

这是这次的大概内容:1.泛型编程2.函数模版2.1概念2.2格式2.3函数模版的原理2.4函数模版的实例化2.4.1隐式实例化2.4.2显示实例化2.5 模板参数的匹配原则3.类模板3.1概念3.2格式3.3类模板的实例化

2024-01-31 10:56:17 4019 53

原创 群晖安装Drive Server与Office实现团队固定公网地址远程办公

经过以上配置,我们实现以固定公网地址制作文档的公开链接,这样下次再有临时会议、居家办公等需求时,直接打开链接就可以工作啦!

2024-01-29 22:31:48 1750 10

空空如也

空空如也

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

TA关注的人

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