<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lxc689的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lxc689</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lxc689]]></copyright><item><title><![CDATA[A3打印设置]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/156276737</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/156276737</guid><author>lxc689</author><pubDate>Thu, 25 Dec 2025 18:57:32 +0800</pubDate><description><![CDATA[A3打印]]></description><category></category></item><item><title><![CDATA[TCP拥塞控制和流量控制]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/102312947</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/102312947</guid><author>lxc689</author><pubDate>Mon, 07 Oct 2019 17:53:42 +0800</pubDate><description><![CDATA[一：流量控制
什么是流量控制，流量控制的目的？
如果发送者发送数据过快，接受者来不及接收，那么就会有分组丢失。为了避免分组丢失，控制发送者的发送速度，使得接受者来得及接收，这就是流量控制。流量控制根本目的是为了防止分组丢失，他是构成TCP可靠性的一方面。
如何实现流量控制？
由滑动窗口协议（连续ARQ协议）实现。滑动窗口协议既保证了分组无差错、有序接收，也实现了流量控制。 主要的方式就是接受方返回...]]></description><category></category></item><item><title><![CDATA[select、poll和epoll的区别]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/100073859</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/100073859</guid><author>lxc689</author><pubDate>Sun, 08 Sep 2019 21:24:27 +0800</pubDate><description><![CDATA[select，poll，epoll都是IO多路复用的机制。I/O多路复用就通过一种机制，可以监视多个描述符，一旦某个描述符就绪（一般是读就绪或者写就绪），能够通知程序进行相应的读写操作。
一、select
select仅仅知道I/O事件发生的最大文件描述符，但并不知道是哪几个
1）时间复杂度：O(n)
2）优点：跨平台支持，几乎支持所有平台
3）缺点：

单个进程支持连接的fd有数量限制，默认值为...]]></description><category></category></item><item><title><![CDATA[C++堆排序]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/97421152</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/97421152</guid><author>lxc689</author><pubDate>Mon, 26 Aug 2019 16:51:23 +0800</pubDate><description><![CDATA[堆排序
堆排序是利用堆这种数据结构而设计的一种排序算法，堆排序是一种选择排序，它的最坏，最好，平均时间复杂度均为O(nlogn)，它也是不稳定排序。首先简单了解下堆结构。
堆
堆是具有以下性质的完全二叉树：每个结点的值都大于或等于其左右孩子结点的值，称为大顶堆；或者每个结点的值都小于或等于其左右孩子结点的值，称为小顶堆。如下图：
　　
　　同时，我们对堆中的结点按层进行编号，将这种逻辑结构映射到数...]]></description><category></category></item><item><title><![CDATA[C++基础知识]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/95238819</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/95238819</guid><author>lxc689</author><pubDate>Mon, 26 Aug 2019 10:59:05 +0800</pubDate><description><![CDATA[基础语法部分
external的使用
extern：声明使得变量为程序所知
顶层const和底层const
构造函数和析构函数
继承和多态]]></description><category></category></item><item><title><![CDATA[C++ 多线程（互斥量、死锁、条件变量）]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/95982509</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/95982509</guid><author>lxc689</author><pubDate>Wed, 17 Jul 2019 11:56:44 +0800</pubDate><description><![CDATA[文章目录四、数据竞争与互斥对象1.使用互斥锁防止多线程竞争同一资源2. 受保护的代码抛出异常时的处理五、死锁
四、数据竞争与互斥对象
1.使用互斥锁防止多线程竞争同一资源

&lt;mutex&gt;:声明与互斥量相关的类，包括：std:mutex系列类，std:lock_guard,std:unique_lock以及其他的类型和函数
互斥锁mutex保护了临界区，任何一个时刻只能有一个线程在此m...]]></description><category></category></item><item><title><![CDATA[C++ 多线程 （线程的基本概念及创建）]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/95939575</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/95939575</guid><author>lxc689</author><pubDate>Mon, 15 Jul 2019 16:21:19 +0800</pubDate><description><![CDATA[文章目录一、线程的基本概念1.join和detach2.主线程main函数抛出异常时，新线程的代码保护3.get_id()获取线程id和系统可运行的线程数指示器二、线程创建的3种方式1.使用函数指针创建进程2.使用函数对象创建进程3. 使用lambda函数创建进程三、线程的参数传递1.值传递和引用传递2.线程之间的参数移动以及线程的移动
一、线程的基本概念
C++11中与多线程相关的头文件：

&...]]></description><category></category></item><item><title><![CDATA[C++异常处理]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/95915444</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/95915444</guid><author>lxc689</author><pubDate>Sun, 14 Jul 2019 22:03:26 +0800</pubDate><description><![CDATA[一、C++异常处理基本语法

1.C++通过throw语句和try...catch语句实现对异常的处理


throw  表达式;

该语句抛出一个异常。异常是一个表达式，类型可以是基本类型，也可以是类。

2.try...catch语句的语法如下：


try {
    执行语句组（包含throw语句）
}
catch(异常类型) {
    异常处理代码
}
...
catch(...) {...]]></description><category></category></item><item><title><![CDATA[HTTP协议+非对称加密]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/95641465</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/95641465</guid><author>lxc689</author><pubDate>Fri, 12 Jul 2019 19:07:37 +0800</pubDate><description><![CDATA[文章目录一、基本概念二、HTTP协议的过程1. URL详解三、HTTP请求1. 请求方式2. GET和POST详解3. GET和POST的区别四、HTTP响应1. 状态码五、HTTP与HTTPS的区别
一、基本概念
HTTP，全称为HyperText Transfer Protocol，即超文本传输协议。是互联网中应用最广泛的一种网络协议，所有的文件都必须遵守这个标准。
所在协议层：应用层
HTT...]]></description><category></category></item><item><title><![CDATA[数据结构]]></title><link>https://blog.youkuaiyun.com/lxc689/article/details/94768673</link><guid>https://blog.youkuaiyun.com/lxc689/article/details/94768673</guid><author>lxc689</author><pubDate>Wed, 10 Jul 2019 11:38:57 +0800</pubDate><description><![CDATA[1.C++ 中vector和数组的区别

内存中的位置不同

C++中数组为内置的数据类型，存放在栈中，其内存的分配和释放完全由系统自动完成；而vector存放在堆中，由STL库中程序负责内存的分配和释放。
大小能否变化：

虽然数组也可以不指定长度，但是长度一旦指定就固定不变；而vector可以通过插入删除等操作改变长度的大小，当vector中空间不足时，会在原来的基础上两倍申请内存进行扩容。
...]]></description><category></category></item></channel></rss>