<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[AIDOU_LBJ的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AIDOU_LBJ</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AIDOU_LBJ]]></copyright><item><title><![CDATA[腾讯测试开发岗实习面试（流水账）]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/80111122</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/80111122</guid><author>AIDOU_LBJ</author><pubDate>Fri, 27 Apr 2018 21:28:07 +0800</pubDate><description><![CDATA[恩...很久没有更博，这次的博文就记录一下我最近最主要的一个经历吧。先说真的是运气好跻身鹅厂的实习生大军，最主要的感受就是大家都要勇于尝试，不要觉得BAT这种大公司很难很难（其实在几个月前我也是这么认为的...）其实可能还没有有些小点的公司难。下面进入正题吧~我走的是腾讯校招，正常步骤分为网申，网上笔试，一面，二面，HR面，如果顺利通过前面几关的话，那就需要耐心耐心再耐心的等待....网申从开学开...]]></description><category></category></item><item><title><![CDATA[I/O复用]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78628876</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78628876</guid><author>AIDOU_LBJ</author><pubDate>Sun, 26 Nov 2017 12:07:00 +0800</pubDate><description><![CDATA[I/O复用作用：
将获取数据的操作延后到数据到达以后。数据到达以后，有数据的文件描述符会有一个就绪事件，服务器只需要处理就绪事件就可以。这样服务器单进程，单线程就可以同时监听多个文件描述符。
select：
select函数的作用：在一段时间内，监听用户感兴趣的文件描述符上的可读，可写，异常事件。
函数原型：
int select(int nfds, fd_set *read, fd_s]]></description><category></category></item><item><title><![CDATA[C++函数返回值]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78604793</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78604793</guid><author>AIDOU_LBJ</author><pubDate>Wed, 22 Nov 2017 16:36:00 +0800</pubDate><description><![CDATA[一、返回值类型
如果返回值为类类型，不管多大字节，全部由临时量带回。
其他类型：
4字节  由寄存器带回
8字节 也是由寄存器带回
>8字节 开辟一个临时量（由调用方函数开辟）寄存器带出临时量的地址，然后循环拷贝到接收返回值的变量地址空间。
若有以下代码：
Test fun1(Test rhs)
{
int value=rhs.value;
Test tmp(value);
]]></description><category></category></item><item><title><![CDATA[C++中对象的生存周期]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78603944</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78603944</guid><author>AIDOU_LBJ</author><pubDate>Wed, 22 Nov 2017 15:51:01 +0800</pubDate><description><![CDATA[在C中有变量的生存周期，那么在C++中就有对象的生存周期。
（1）普通对象的生存周期
若有一个CObject类，属性是姓名和年龄。
CObject gobject1;
int main()
{
CObject object1;
CObject object2("宝宝",10);
return 0;
}
CObject gobject2;
函数调用的先后顺序是：
构造函数：g]]></description><category></category></item><item><title><![CDATA[C++中类和对象以及成员函数]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78563083</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78563083</guid><author>AIDOU_LBJ</author><pubDate>Fri, 17 Nov 2017 16:57:23 +0800</pubDate><description><![CDATA[一个实体拥有自己的属性和行为，属性是私有的，行为是共有的，在C++中实体对应的就是对象，实体抽象数据类型就是类，属性是成员变量，行为是成员函数。
面向对象思想的三大特征：
封装、继承、多态（静多态，动多态）
访问限定符：
public：任意位置都可以访问。
protected：（继承和派生）一子类可以访问父类的保护成员。
private：只有在类中才能被访问。
如果在class类中没]]></description><category></category></item><item><title><![CDATA[线程池]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78556568</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78556568</guid><author>AIDOU_LBJ</author><pubDate>Thu, 16 Nov 2017 23:25:33 +0800</pubDate><description><![CDATA[今天我们来看一下线程池的概念。首先什么是池呢？作用是什么？
池：初始时，申请比刚开始要使用的资源大的多的资源空间。接下来使用时，直接从池中获取资源。
线程池：多线程存在如果客户端链接，创建一个新的线程，客户端关闭，释放线程。服务器更多时间消耗在创建线程、释放线程。对于业务逻辑的处理，就会较少。所以，我们可以用线程池来改善问题。
总的来说线程池就是在服务器运行初始时，创建n 个线程，将这个n]]></description><category></category></item><item><title><![CDATA[高性能服务器编程--多进程和多线程]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78556324</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78556324</guid><author>AIDOU_LBJ</author><pubDate>Thu, 16 Nov 2017 22:51:23 +0800</pubDate><description><![CDATA[今天我们来看看高性能服务器编程--多进程和多线程。有的人就会想高性能服务器高性能在哪里了？
在之前的TCP和UDP编程中，链接的客户端如果没有断开链接，服务器则不能在连接别的客户端，导致服务器同时只能处理一个客户端，这样就大大降低了服务器的效率，所以为了解决这个问题，就提出了高性能服务器编程。下面我们就来看看具体是怎么实现的。
一、高性能服务器编程--多进程

思路： 父进程只负责acce]]></description><category></category></item><item><title><![CDATA[HTTP协议以及HTTP编程]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78525396</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78525396</guid><author>AIDOU_LBJ</author><pubDate>Mon, 13 Nov 2017 22:08:29 +0800</pubDate><description><![CDATA[HTTP协议是用于从万维网服务器传输超文本到本地浏览器的传输协议。HTTP协议是基于TCP/IP通信协议来传递数据的，是一个属于应用层的面向对象的协议，由于其简捷、快速的方式，适用于分布式超媒体信息系统。

HTTP的主要特点：

1、简单快速：

    客户向服务器请求服务时，只需要传送请求方法和路径。请求的方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类]]></description><category></category></item><item><title><![CDATA[网络编程--UDP]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78480898</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78480898</guid><author>AIDOU_LBJ</author><pubDate>Wed, 08 Nov 2017 17:16:39 +0800</pubDate><description><![CDATA[网络编程传输层选择一个数据控制模式：TCP或者UDP，前面我们已经介绍了TCP编程，这篇我们简单的来看看UDP编程。
UDP是无连接的不可靠的数据流服务。
首先我们先简单的了解一下UDP报文。
UDP报头：


TCP是字节流服务，UDP是数据报服务。这两个有什么区别呢？



UDP 的编程流程：
服务器： socket   bind   recvfrom/sendto]]></description><category></category></item><item><title><![CDATA[C++中的const]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78473638</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78473638</guid><author>AIDOU_LBJ</author><pubDate>Wed, 08 Nov 2017 15:18:14 +0800</pubDate><description><![CDATA[一、const与一级引用
①
const int a = 10；
int &b = a；
②
const int a = 10；
int &b = a；//error
因为可能通过b进而修改a的值，a被const修饰值不可改，所以编译器会报错。
③
const int a = 10；
int const &b = a；//取地址不参与类型，b的类型是int，const修饰的是&]]></description><category></category></item><item><title><![CDATA[C和C++的区别]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78462225</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78462225</guid><author>AIDOU_LBJ</author><pubDate>Mon, 06 Nov 2017 21:31:52 +0800</pubDate><description><![CDATA[1、默认值
2、内联函数
①C++中的内联函数，在调用点把代码直接展开（编译阶段）。
感觉和#define类似，那么这两个之间有什么区别呢？
宏：在预编译阶段进行替换，没有进行类型检查，所以不安全
内联函数：在编译阶段处理，进行类型检查，安全性好，所以又叫更安全的宏
例：#define Max(a,b) a>b ? a:b
..
int a=MAx(10,20)+20;//a=10>2]]></description><category></category></item><item><title><![CDATA[网络基础以及基础编程-TCP]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78461607</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78461607</guid><author>AIDOU_LBJ</author><pubDate>Mon, 06 Nov 2017 20:36:59 +0800</pubDate><description><![CDATA[前面的博客关于Linux的都是操作系统方面以及系统编程，从这篇开始，我们开始介绍了解学习一下关于网络方面的基础知识以及网络编程。我们既然要开始网络编程，那么学习了解网络的基础知识是必须的。
什么是网络？网络就是将主机连接起来就可称之为网络。这样主机与主机之间就可以进行通讯了，那么在网络通信过程中的主角是什么？实质是进程和进程之间的通信。要进行通信那么就要知道它的IP地址和端口号，我们平时说的网卡]]></description><category></category></item><item><title><![CDATA[线程同步问题]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78413752</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78413752</guid><author>AIDOU_LBJ</author><pubDate>Wed, 01 Nov 2017 16:10:41 +0800</pubDate><description><![CDATA[多进程之间访问临界资源需要进行同步控制，那么线程也是一样的，多线程访问临界资源时也同样需要进行同步控制。多进程或者多线程的执行并不完全是绝对的并行运行，有可能主线程需要等待函数线程的某些条件的发生。
进程间的全局变量，栈区，堆区的数据都不共享，只有文件描述符是共享的，而线程之间的全局变量，堆区，文件描述符都是共享的。
多线程之间同步控制方式：
（1）信号量
获取：
        int]]></description><category></category></item><item><title><![CDATA[什么是线程]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78409283</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78409283</guid><author>AIDOU_LBJ</author><pubDate>Tue, 31 Oct 2017 23:06:58 +0800</pubDate><description><![CDATA[前面我们主要写了进程通讯方面的东西，基本告一段落，还有一种通讯方式叫套接字，这是应用于网络通信的后面会涉及到，今天我们来看看什么是线程，和进程又有什么区别？
首先看一下线程的基本概念，相信很多朋友都不是很清楚线程是个什么东西，和进程有什么联系，又有什么不同。
线程：是进程内部的一条执行序列（执行流），每个进程至少有一条执行序列：main的执行体。进程可以通过线程库创建N条线程，这些新创建的线程]]></description><category></category></item><item><title><![CDATA[C++编译链接]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78391173</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78391173</guid><author>AIDOU_LBJ</author><pubDate>Mon, 30 Oct 2017 11:10:35 +0800</pubDate><description><![CDATA[我们在编译器里面编写一段代码，点击一个键轻而易举就会生成结果，那么大家有没有想过，编译器是如何做的可以让这么一段代码运行起来的，内部是如何实现的，那么今天我们就来看看。
流程如下：
源代码-->预处理-->编译-->汇编-->链接-->生成可执行文件
预处理阶段：主要做的就是删除注释，宏替换，处理预处理指令（#include
编译阶段：进程词法分析，语法分析，语义分析以及代码优化，在此阶段]]></description><category></category></item><item><title><![CDATA[Linux进程间通信-几种通信方式的比较]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78369486</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78369486</guid><author>AIDOU_LBJ</author><pubDate>Fri, 27 Oct 2017 21:38:57 +0800</pubDate><description><![CDATA[前面几篇关于Linux进程间通信（单机通信）差不多就告一段落，以后有什么需要补充的再补充。既然写了几篇进程间通信，那么今天我们就来总结总结，比较一下这几种通信方式，看看在什么样的情况下适用于什么样的通信方式。这篇就不具体写函数实现和具体的参数了，大家可以在前面几篇看。
第一种通讯方式：管道
在内存中创建一个管道，它不属于任何区域或进程。
有名管道：应用于任意两个进程之间数据的单向传递。
无]]></description><category></category></item><item><title><![CDATA[Linux中进程间通信--共享存储]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78328761</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78328761</guid><author>AIDOU_LBJ</author><pubDate>Tue, 24 Oct 2017 13:52:01 +0800</pubDate><description><![CDATA[今天同样来看看进程间通信，前面几篇介绍了管道，信号量，消息队列，这篇是共享内存。
共享存储允许两个或更多进程共享一给定的存储区。因为数据不需要在客户进程和服务器进程之间复制，所以这是最快的一种IPC。使用共享存储时要掌握的唯一窍门是多个进程之间对一给定存储区的同步访问。若服务器进程正在将数据放入共享存储区，则在它做完这一操作之前，客户进程不应当去取这些数据。通常，信号量被用来实现对共享存储访问的]]></description><category></category></item><item><title><![CDATA[Linux进程间通信--消息队列]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78322913</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78322913</guid><author>AIDOU_LBJ</author><pubDate>Mon, 23 Oct 2017 20:27:14 +0800</pubDate><description><![CDATA[前面写了进程间通信的管道（无名管道，有名管道），信号量，今天我们来看看消息队列。
消息队列是消息的链接表，存放在内核中并由消息队列标识符标识。
消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型，接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样，每个数据块都有一个最大长度的]]></description><category></category></item><item><title><![CDATA[Linux中进程通讯--信号量]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78302956</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78302956</guid><author>AIDOU_LBJ</author><pubDate>Sat, 21 Oct 2017 13:16:49 +0800</pubDate><description><![CDATA[前面写了Linux进程通讯中的管道（有名管道和无名管道），前两天学习了信号量，今天我们就来写一下信号量。
首先要明确一点，信号量和信号不是一样的。信号量(Semaphore)，有时被称为信号灯，是在多环境下使用的一种设施，是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前，线程必须获取一个信号量；一旦该关键代码段完成了，那么该线程必须释放信号量。其它想进入该关键代码段的线程]]></description><category></category></item><item><title><![CDATA[Linux中进程通讯--无名管道]]></title><link>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78292826</link><guid>https://blog.youkuaiyun.com/AIDOU_LBJ/article/details/78292826</guid><author>AIDOU_LBJ</author><pubDate>Fri, 20 Oct 2017 10:39:09 +0800</pubDate><description><![CDATA[上一篇更博是有名管道，今天我们来看看无名管道。
无名管道：相对于有名管道而言的，无名管道在使用时产生，不使用后释放。并不会在系统上留下任何蛛丝马迹。无名管道因其使用前没有任何的标识，所以它只能应用于父子进程之间。因为父子进程会复制父进程的文件表数组。（浅拷贝）
无名管道的操作：
1、创建     int  pipe(int  fd[2]);//fd[o]表示读数据  fd[1表示写数据]
]]></description><category></category></item></channel></rss>