<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lchilde的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Lchilde</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lchilde]]></copyright><item><title><![CDATA[进程与线程]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/115036313</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/115036313</guid><author>Lchilde</author><pubDate>Sun, 21 Mar 2021 11:22:29 +0800</pubDate><description><![CDATA[进程与线程总结
1.什么是进程？
进程其实是一个运行中的程序，从操作系统的角度来看，进程是一个pcb，是对运行程序的描述，在linux下，这个pcb其实是一个task_struck{…}结构体
2.什么是线程？
线程是进程的一条执行流，是进程的一个实体，一个进程中可以有多条线程，同一个进程中的线程共享进程中的大多数资源，因此，线程可以说是一个轻量级进程。
3.进程与线程的区别
根本区别：
进程是资源调度和分配的基本单位；
线程是cpu调度的基本单位；
从资源开销方面讲：
进程有自己独立的代码和空间，进行进程]]></description><category></category></item><item><title><![CDATA[c++面经2]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/109156039</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/109156039</guid><author>Lchilde</author><pubDate>Mon, 19 Oct 2020 10:35:50 +0800</pubDate><description><![CDATA[11.什么是inline内联函数，使用内联函数有什么优缺点，什么是宏，宏和inline函数有什么区别
内联函数是用inline关键字修饰的，定义在类体外的成员函数，内联函数会在函数编译阶段进行展开，少了函数调用的开销以提高代码运行的效率
内联函数的优点：
它通过避免函数调用开销来加速程序的运行
当函数调用发生时，它可以节省堆栈上变量push/pop的开销
它节省了函数调用返回的开销
内联函数的缺点：
由于代码扩展，它增加了可执行文件的大小
可能到时内存崩溃
宏的优缺点：宏包括宏常量和宏函数
宏常量优点：一改]]></description><category></category></item><item><title><![CDATA[c++之继承]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/109154552</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/109154552</guid><author>Lchilde</author><pubDate>Mon, 19 Oct 2020 09:45:54 +0800</pubDate><description><![CDATA[1.子类对象可以直接赋值给父类对象
#include&lt;iostream&gt;
using namespace std;
 
class Parent
{
private:
	int a;
public:
 
};
 
class Child :public Parent
{
private:
	int b;
public:
 
};
 
int main()
{
	Child c;
	Parent p;
 
        p = c;     //子类对象可以直接赋值给父类对象
	
	return]]></description><category></category></item><item><title><![CDATA[linux之进程间通信]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/109150924</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/109150924</guid><author>Lchilde</author><pubDate>Sun, 18 Oct 2020 21:46:52 +0800</pubDate><description><![CDATA[进程间通信
进程间通信(IPC):操作系统为用户提供的几种进程间通信：
主要因为进程之间具有独立性(每个进程都有自己的虚拟地址空间),因此无法直接通信所以才需要操作系统提供进程间通信方式，实现进程间通信
访问的都是自己的虚拟地址，而不是直接访问物理内存，无法访问同一块区域，因此无法实现时数据通信
操作系统针对不同的通信场景提供了多种不同的通信方式：数据传输–管道/消息队列；数据共享–共享内存  进程控制—信号量
从unix而来的管道；systemV标准的共享内存/消息队列/信号量；
管道：
本质：内核中的一]]></description><category></category></item><item><title><![CDATA[LeetCode 349]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/109129878</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/109129878</guid><author>Lchilde</author><pubDate>Sat, 17 Oct 2020 11:21:11 +0800</pubDate><description><![CDATA[LeetCode:349
https://leetcode-cn.com/problems/intersection-of-two-arrays/
题目
给定两个数组，编写一个函数来计算它们的交集。
示例 1：
输入：nums1 = [1,2,2,1], nums2 = [2,2]
输出：[2]

示例 2：
输入：nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出：[9,4]

说明：
输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。
题解：
class So]]></description><category></category></item><item><title><![CDATA[c++面经1]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/109129695</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/109129695</guid><author>Lchilde</author><pubDate>Sat, 17 Oct 2020 10:29:44 +0800</pubDate><description><![CDATA[1.数组和链表的区别
二者都属于一种数据结构
从逻辑上看：
1）：数组是一种线性表数据结构。他用一组连续的内存空间，来存储一组具有想同类型的数据，最大的特点是支持随机访问，但数组必须事先定义固定的长度（元素个数），不能适应数据动态增加的情况，当数据增加时，可能超过原先定义的元素个数；当数据减少时，造成内存浪费；数组可以根据下标直接存取
2）：链表是一种物理存储单元上非连续，非顺序的存储结构，数据元素的逻辑顺序是通过链表中的指针链接次序实现的，链表由一系列节点组成，链表动态地进行存储分配，可以适应数据动态地增]]></description><category></category></item><item><title><![CDATA[linux之基础IO]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/109090541</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/109090541</guid><author>Lchilde</author><pubDate>Thu, 15 Oct 2020 09:30:19 +0800</pubDate><description><![CDATA[基础IO
基础IO：
文件的输入输出操作–回顾标准库的IO接口/学习linux下系统调用IO接口/文件描述符的理解/重定向的理解/文件系统/库文件
回顾标准库的IO接口–都是库函数–库函数就是对系统调用接口的封装：fopen/fwrite/fread/fseek/fclose
fopen–打开一个文件 FILE *fopen(char filename,char mode);(文件名称，打开方式)
打开方式：“r-只读 r±读写 w-只写 w±读写 a-追加写 a±追加读写 b-二进制操作”
追加写：每次写]]></description><category></category></item><item><title><![CDATA[进程控制]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108980539</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108980539</guid><author>Lchilde</author><pubDate>Fri, 09 Oct 2020 16:07:16 +0800</pubDate><description><![CDATA[进程控制：进程创建/进程终止/进程等待/程序替换
进程创建：
pid_t fork(void);–创建一个进程–父子进程数据独有，代码共享
进程创建采用写时拷贝技术，目的是为了提高进程的创建效率
原因：按理说每个进程都应该有自己独有的内存空间，但是若创建子进程时直接开辟空间拷贝数据，将会比较慢，并且拷贝过来的数据子进程从来都不用
写时拷贝技术：子进程赋值父进程，一开始与父进程指向同一块物理内存；因此看起来父子进程完全相同；但是进程之间具有独立性，意味着当这块物理内存中的数据即将发生改变时会重新给子进程开辟物]]></description><category></category></item><item><title><![CDATA[进程概念2]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108758800</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108758800</guid><author>Lchilde</author><pubDate>Wed, 23 Sep 2020 18:33:25 +0800</pubDate><description><![CDATA[进程状态：就绪/运行/阻塞
linux下的状态：
运行态 R：就绪/运行
可中断休眠态 S：当前的阻塞能够被中断唤醒
不可中断休眠态 D：当前的阻塞不会被中断唤醒，等待条件满足自己醒来
停止态 T：停止运行，什么也不干
僵死态 Z：进程已经退出了但是资源没有完全被释放的一种状态
僵尸进程：
处于僵死状态的进程，进程已经退出没有运行，但是资源没有释放
僵尸进程是怎么产生的？
在子进程先于父进程退出，父进程没有进行进程等待，导致无法获取子进程的退出状态，因此操作系统无法直接释放子进程的资源
子进程退出之后并没有]]></description><category></category></item><item><title><![CDATA[进程概念1]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108719873</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108719873</guid><author>Lchilde</author><pubDate>Mon, 21 Sep 2020 21:43:55 +0800</pubDate><description><![CDATA[1.认识冯诺依曼体系结构
冯诺依曼体系结构：现代计算机硬件体系结构
输入设备：键盘
输出设备：显示器
存储器：内存条
运算器：
中央处理器：cpu
控制器：
硬件结构决定了软件行为/所有的设备都是围绕存储器工作的
2.简单认识操作系统
操作系统：内核+应用
功能：管理计算机软硬件资源
定位：搞管理的软件
目的：让计算机更加好用
库函数与系统调用接口的关系：库函数封装了系统调用接口；上下级的调用关系
3.进程概念
进程概念：
什么是进程：
运行中的程序，站在操作系统的角度，进程就是pcb，是操作系统对一个运行]]></description><category></category></item><item><title><![CDATA[linux常用工具]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108664620</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108664620</guid><author>Lchilde</author><pubDate>Fri, 18 Sep 2020 14:32:36 +0800</pubDate><description><![CDATA[常用工具：
软件包管理工具：yum
编程相关工具：vim，gcc/g++，gdb
项目相关工具：make/Makefile，git
软件包管理工具：yum
查看软件包：yum list|grep key
安装软件包：yum install package_name
移除软件包：yum remove package_name
编辑器：vim
vim中的操作模式：12种，常用的有三种：
普通模式：主要是使用命令进行文件内容操作
插入模式：插入数据
底行模式：用于文件内容的保存和退出
模式切换：
普通-&gt;插]]></description><category></category></item><item><title><![CDATA[linux权限]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108663725</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108663725</guid><author>Lchilde</author><pubDate>Fri, 18 Sep 2020 13:48:59 +0800</pubDate><description><![CDATA[linux权限
权限：用户对操作系统所进行的操作进行权利限制：管理员-root/普通用户
文件的权限：
对文件操作进行的用户分类：文件所有者u   文件所属组g  其他用户o
用户对文件进行的操作分类：可读r(可浏览)    可写w（是否可在目录下创建/删除文件）  可执行x(是否可进入目录)
例子：所有者可读可写可执行，所属组可读可写，其他用户可执行    rwxrw—x（761）
umask：查看/设置文件默认创建权限的掩码
chmod：修改一个文件的权限  chmod[ugoa] +/- [rwx] ]]></description><category></category></item><item><title><![CDATA[linux基础指令]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108638439</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108638439</guid><author>Lchilde</author><pubDate>Thu, 17 Sep 2020 11:07:11 +0800</pubDate><description><![CDATA[linux基础指令
命令的使用格式：命令名称  [功能选项]  [操作对象]
1.目录相关命令
     ls      浏览目录内容，默认浏览当前所在目录
              -a  查看所有文件(包括隐藏文件)  linux以.开头的文件都是隐藏文件
              -l   查看文件的详细信息
     pwd：显示当前所在目录的路径(绝对路径)
                    绝对路径：唯一路径(起始路径从根目录表达的路径)
                相对路径：起始]]></description><category></category></item><item><title><![CDATA[LeetCode 841 钥匙和房间]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108353385</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108353385</guid><author>Lchilde</author><pubDate>Wed, 02 Sep 2020 00:04:56 +0800</pubDate><description><![CDATA[题目描述：
有 N 个房间，开始时你位于 0 号房间。每个房间有不同的号码：0，1，2，…，N-1，并且房间里可能有一些钥匙能使你进入下一个房间。
在形式上，对于每个房间 i 都有一个钥匙列表 rooms[i]，每个钥匙 rooms[i][j] 由 [0,1，…，N-1] 中的一个整数表示，其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。
最初，除 0 号房间外的其余所有房间都被锁住。
你可以自由地在房间之间来回走动。
如果能进入每个房间返回 tr]]></description><category></category></item><item><title><![CDATA[LeetCode 486 预测赢家]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108353293</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108353293</guid><author>Lchilde</author><pubDate>Tue, 01 Sep 2020 23:53:35 +0800</pubDate><description><![CDATA[题目描述：
给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数，随后玩家 2 继续从剩余数组任意一端拿取分数，然后玩家 1 拿，…… 。每次一个玩家只能拿取一个分数，分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。
给定一个表示分数的数组，预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。
示例 1：
输入：[1, 5, 2]
输出：False
解释：一开始，玩家1可以从1和2中进行选择。
如果他选择 2（或者 1 ），那么玩]]></description><category></category></item><item><title><![CDATA[c++项目，制作GIF动态图]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108036097</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108036097</guid><author>Lchilde</author><pubDate>Sat, 29 Aug 2020 13:28:36 +0800</pubDate><description><![CDATA[项目目录项目背景项目简介项目可行性分析第三方库以及项目工具介绍项目总体设计流程图项目详细设计项目测试项目结果项目源代码
项目背景
在很多时候，人们所说的一句话在不同的的环境和状态下回有不同的含义，但是，我们有时候并不能表达出的信息并不是自己想要的结果，尤其是在我们在虚拟网络上聊天时，仅仅依靠文字我们并不能很好地看出对方的情况，而随着互联网的不断发展与进步，有时候一个简简单单的表情也许能比很长一段文字能更好地表现出来对方想让我们知道的信息，这样就更加方便彼此之间的交流。在我们上网聊天时，“一言不合就斗图”的情]]></description><category></category></item><item><title><![CDATA[c/c++内存分配方式]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108194824</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108194824</guid><author>Lchilde</author><pubDate>Mon, 24 Aug 2020 10:42:59 +0800</pubDate><description><![CDATA[数据段：数据段通常是指用来存放程序中已初始化的全局变量和静态变量的一块内存区域。数据段属于静态内存分配，可以分为只读数据段和读写数据段。 字符串常量等，但一般都是放在只读数据段中 。
代码段：代码段通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定，并且内存区域通常属于只读, 某些架构也允许代码段为可写，即允许修改程序。在代码段中，也有可能包含一些只读的常数变量，例如字符串常量等，但一般都是放在只读数据段中 。
栈区：由系统自动分配，当函数执行结束时由系统自动释放。存放局部.]]></description><category></category></item><item><title><![CDATA[网络基础--传输层]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108082165</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108082165</guid><author>Lchilde</author><pubDate>Tue, 18 Aug 2020 18:11:09 +0800</pubDate><description><![CDATA[传输层：负责应用程序之间的数据传输  TCP/UDP协议
UDP协议特性：无连接，不可靠，面向数据报
无连接：通信的时候，不需要建立连接，只需要知道对方的地址信息，就可以直接发送数据
不可靠：通信过程中，并不保证数据安全可靠以及有序的到达对端
数据报传输：无连接的，不可靠的，有最大传输长度限制的一种传输方式
有最大传输长度限制：udp报文头部中有一个数据报长度字段，最大数字为65535，限制一个完整的报文长度不得超过64k
UDP报文

16位源端口/16为目的端口：描述数据从哪个进程发送到哪个进程–负责实]]></description><category></category></item><item><title><![CDATA[linux网络基础]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108027335</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108027335</guid><author>Lchilde</author><pubDate>Sat, 15 Aug 2020 19:50:37 +0800</pubDate><description><![CDATA[1.网络覆盖范围：局域网/城域网/广域网     互联网/因特网  以太网/令牌环网—组网方式
2.在网路中必须唯一标识每一台主机，才能实现点到点的精确通信
ip地址：uint32_t  无符号4个字节的整数
网络通信中的每条数据都必须具备：源IP地址/目的IP地址–表示数据从哪个主机来，到哪个主机去
目的IP地址：能够让网络中的路由器为每一条数据根据目的地址选择不同的路径准确到达对端主机
源IP地址：能够让对端主机知道数据是谁发送，一遍回复数据
3.IP地址使网络中实现主机与主机之间的通信，但是主机是哪个]]></description><category></category></item><item><title><![CDATA[C++之STL]]></title><link>https://blog.youkuaiyun.com/Lchilde/article/details/108026779</link><guid>https://blog.youkuaiyun.com/Lchilde/article/details/108026779</guid><author>Lchilde</author><pubDate>Sat, 15 Aug 2020 18:58:21 +0800</pubDate><description><![CDATA[C+之STL
STL:C++标准模板库 对常见数据结构的封装+通用的算法：与数据类型无关（template）与数据结构无关详细解释：六大组件
* 容器：管理数据的一个集合–&gt;常见的数据结构（按照template方式封装）
* 迭代器：作用：让算法对数据结构透明化–不关心数据采用的是什么数据结构
* 算法 ：与具体数据结构相关的算法+通用类型的算法
* 适配器：stack，queue   priprity_queue
* 仿函数（函数对象）：可以向函数使用的 对象  作用：让算法更加的灵活
* 空间配置]]></description><category></category></item></channel></rss>