<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[imfengyewuqing的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/imfengyewuqing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; imfengyewuqing]]></copyright><item><title><![CDATA[C++秋招（暑期实习）准备---10--- 项目2 WebServer]]></title><link>https://blog.youkuaiyun.com/imfengyewuqing/article/details/122216956</link><guid>https://blog.youkuaiyun.com/imfengyewuqing/article/details/122216956</guid><author>imfengyewuqing</author><pubDate>Wed, 12 Jan 2022 21:00:41 +0800</pubDate><description><![CDATA[基础知识：

1:浅谈同步与异步：

同步就是一个进程在执行某个请求时候，若该请求需要一段时间才能返回信息，那么这个进程就会一直等待下去，知道收到返回信息才继续执行。

异步就是进程不需要一直等待下去，而是继续执行下面的操作，不管其他进程的状态。当有消息返回时，系统会通知进程处理，这样可以提高效率。、

同步I/O模型要求用户代码自行执行I/O操作（将数据从内核缓冲区读入用户缓冲区，或者相反）

异步I/O模型则由内核来执行I/O操作，数据在内核缓冲区和用户缓冲区之间的移动是由内核在后台完成的。半同步/半异]]></description><category></category></item><item><title><![CDATA[C++秋招（暑期实习）准备---4--- OS]]></title><link>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121473159</link><guid>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121473159</guid><author>imfengyewuqing</author><pubDate>Tue, 28 Dec 2021 15:50:32 +0800</pubDate><description><![CDATA[临界区：

保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区，那么 在有一个线程进入后其他所有试图访问此临界区的线程将被挂起，并一直持续到进入临界区的线程离开。临界区在被释放后，其他线程可以继续抢占，并以此达到用原子方式操作共享资源的目的。

互斥量：

互斥量跟临界区很相似，只有拥有互斥对象的线程才具有访问资源的权限，由于互斥对象只有一个，因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。...]]></description><category></category></item><item><title><![CDATA[C++秋招（暑期实习）准备---7--- 项目1（CMU-15 445 2021 ）]]></title><link>https://blog.youkuaiyun.com/imfengyewuqing/article/details/122012887</link><guid>https://blog.youkuaiyun.com/imfengyewuqing/article/details/122012887</guid><author>imfengyewuqing</author><pubDate>Thu, 23 Dec 2021 14:24:59 +0800</pubDate><description><![CDATA[Hash Table ---数据库内部维护的数据结构

问题1:如何对我们存放在内存或者磁盘中的page上的这些元素进行表示

问题2:如何让多个线程或者多个查询去访问我们的数据结构

Lab2:
]]></description><category></category></item><item><title><![CDATA[C++秋招（暑期实习）准备---5--- 计算机网络]]></title><link>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121912147</link><guid>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121912147</guid><author>imfengyewuqing</author><pubDate>Thu, 16 Dec 2021 15:34:48 +0800</pubDate><description><![CDATA[开放性回答

思路1:

DNS-&gt;正向代理-&gt;反向代理-&gt;.... 从缓存机制角度思考

思路2:

HTTP协议针对目标Web服务器生成HTTP请求报文message
	TCP协议将HTTP报文进行分割成segment，并在各个报文上打上标记序号及端口号后转发给网络层
	IP协议增加dst IP地址,并将报文段分装成packet传送，转发给链路层frame
	接收端 相似
2:浅谈UDP和TCP的区别

TCP需要一对一稳定的连接，UDP..]]></description><category></category></item><item><title><![CDATA[C++秋招（暑期实习）准备---3--- C++ 进阶知识]]></title><link>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121396738</link><guid>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121396738</guid><author>imfengyewuqing</author><pubDate>Thu, 18 Nov 2021 14:46:26 +0800</pubDate><description><![CDATA[1. 谈谈vector的实现原理

    vector底层是一个动态数组，包含三个迭代器，分别指向元素起始位置、元素末尾、空间末尾

    当空间不够装下数据时，会自动申请另一片更大的空间(1.5倍或2倍），然后把原来的数据拷贝到新的内存空间，然后释放原来的空间。

    当释放或者删除里面的元素时，其存储空间不释放，仅仅清空里面的数据。

    对vector的任何操作一旦引起了空间的重新配置，指向原来的vector的所有迭代器失效。

2. 谈一谈vector中的...]]></description><category></category></item><item><title><![CDATA[C++秋招（暑期实习）准备---2--- C++基础知识]]></title><link>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121189212</link><guid>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121189212</guid><author>imfengyewuqing</author><pubDate>Sun, 07 Nov 2021 14:49:25 +0800</pubDate><description><![CDATA[1.11 说说volatile和mutable

    mutable：mutable是为了突破const的限制设置的。被mutable修饰的变量，将永远处于可变的状态，即使在const函数里面。  经典应用场景：测试一个方法被调用的次数

    volatile：在多线程下，当两个线程都要用到某个变量且该变量的值回被改变时，应该用volatile声明，该关键字的作用是防止优化编译器把变量从内存装入CPU寄存器中。如果内存被装入寄存器中，两个线程有可能一个使用内存中的变量，一个使用寄...]]></description><category></category></item><item><title><![CDATA[C++秋招（暑期实习）准备---1--- C++基础知识]]></title><link>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121119774</link><guid>https://blog.youkuaiyun.com/imfengyewuqing/article/details/121119774</guid><author>imfengyewuqing</author><pubDate>Wed, 03 Nov 2021 18:38:31 +0800</pubDate><description><![CDATA[1.1 int main(int argc, char ** argv)函数中，参数argc和argv分别代表什么意思？

argc是argument count 的缩写，表示传入main函数的参数个数

argv是argument vector 的缩写，表示传入main函数的字符串数组指针

1.2简述C++有几种传值方式，之间的区别是什么？

传值：形参发生改变，实参不会发生改变

传地址：指针传递是指针变量传递引用，指针传递中的形参和实参指向同一对象。

传引用: 形参发生改变，实参也发生改变

1.]]></description><category></category></item><item><title><![CDATA[C++智能指针]]></title><link>https://blog.youkuaiyun.com/imfengyewuqing/article/details/120968787</link><guid>https://blog.youkuaiyun.com/imfengyewuqing/article/details/120968787</guid><author>imfengyewuqing</author><pubDate>Tue, 26 Oct 2021 16:40:32 +0800</pubDate><description><![CDATA[1 智能指针是什么？智能指针的原理

a smart pointer is a class template that you declare on the stack, and initialize by using a raw pointer that points to a heap-allocated object. After the smart pointer is initialized, it owns the raw pointer. This means that the smart p]]></description><category></category></item></channel></rss>