YANG

临渊羡鱼不如退而结网

了解Gtest中的事件机制

引入事件机制 举例:我们使用gtest框架测试STL中的map这个数据结构时,我们假设只测find(),size()这两个函数,如果不使用事件机制,则测试的TEST()部分如下: 我们可以看到,在每一个TEST内部都创建了一个map结构,并进行了插入操作,这样就做了很多重复的事情。其实gtest...

2017-08-05 10:46:10

阅读数 1460

评论数 2

22题:栈的压入、弹出顺序

题目描述输入两个整数序列,第一个序列表示栈的压入序列,请判断第二个序列是否是栈的弹出序列。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。‘思路分析首先考虑这个问题肯...

2017-06-29 12:28:20

阅读数 1381

评论数 1

进程间通信:消息队列&信号量&共享内存

进程间通信之管道,点击这里: http://blog.csdn.net/qq_33951180/article/details/68959819 消息队列: 消息队列是一种进程间发送二进制数据块的机制,每个数据块都有特定的类型,接受者进程可以有不同的类型值。 信号量: 共享内存:

2017-06-21 10:24:08

阅读数 790

评论数 0

二叉树的镜像

题目描述完成一个函数,输入一个二叉树,该函数输出它的镜像。二叉树结点定义如下:struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...

2017-06-19 14:50:23

阅读数 726

评论数 0

Shell---循环结构

Shell下的循环结构是类C的,同样也有for循环、while循环,此外,Shell也有until循环。for循环 for循环的基本语法 for variable in {list} do statement1 statement2 ... donefor循环的语法意思与C...

2017-06-12 14:43:41

阅读数 804

评论数 0

信号

信号的基本理解 什么是信号 提到信号,大部分人的第一反应都是红绿灯,没错,这是日常生活中的一种信号,它给了人们提示,当各种颜色的灯亮起时我们应该做什么样的处理动作。不过我们今天说的信号时Linux下的信号(signal),我们回想一种场景,当我们在Linux下打开一个终端,假设现在正有一个进程在...

2017-06-07 20:09:39

阅读数 352

评论数 0

多线程实现生产者与消费者模式

生产者-消费者模式的简介:在实际的软件开发过程中,我们将产生数据的模块称为生产者,处理数据的模块成为消费者。但仅有这两者还不够成为一个生产者-消费者模式,还需要有一个缓冲区(一段内存区域)作为中介,生产者产生的数据放入缓冲区,消费者从缓冲区读取数据并处理。(注:上述所说的模块是广义的,可以是类,函...

2017-06-01 10:08:07

阅读数 2243

评论数 0

线程的同步与互斥:条件变量&信号量

条件变量与互斥锁一样,都是一种数据变量,这两者通常搭配起来使用。 条件变量的作用: 实现线程的同步与互斥: 接口:

2017-05-31 21:40:45

阅读数 1561

评论数 0

线程的同步与互斥:互斥锁

什么是线程的同步与互斥? 同步:假设现有线程A和线程B,线程A需要往缓冲区写数据,线程B需要从缓冲区读数据,但他们之间存在一种制约关系,即当线程A写的时候,B不能来拿数据;B在拿数据的时候A不能往缓冲区写,也就是说,只有当A写完数据(或B取走数据),B才能来读数据(或A才能往里写数据)。这种关系就...

2017-05-29 11:13:07

阅读数 4566

评论数 0

重建二叉树

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如图所示的二叉树并输出它的头结点。 分析及实现: 思路分析 根...

2017-05-28 10:24:26

阅读数 4906

评论数 4

旋转数组的最小数字

题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小数组。例如数组{3,4,5,1,2}是数组{1,2,3,4,5}的旋转数组,该数组的最小值为1。思路解析: O(N)的算法 这种算法的思想就是遍历这个数组,由于这个数组...

2017-05-25 15:51:19

阅读数 739

评论数 4

cut & sort & uniq 工具合集

cut命令主要接受三个定位方法:-b , -c , -f sort工具的常用选项:-u,-r,-o,-n,-k,-t,-f uniq命令常用选项:-d,-u,-c

2017-05-04 13:35:26

阅读数 794

评论数 0

awk工具

awkawk是一种文本分析工具,相对于grep的查找,sed的编辑。awk和sed都可以处理文本,awk比sed的强大之处在于处理列也是比较细致的,它可以对行(记录)、列(域)进行分析。awk默认的行分隔符是换行,列分隔符是Tab或者连续的空格(列分隔符分开的每个部分称为一个域)。 awk命令行的...

2017-05-02 09:22:50

阅读数 782

评论数 0

sed工具

sed的基本格式: sed option ‘command’ file1 file2 … sed option -f scriptfile file1 file2 … sed的命令格式:sed /pattern/action pattern即正则表达式,action即编辑动作 ...

2017-04-28 07:45:31

阅读数 1019

评论数 0

基于HTTP协议实现的小型web服务器

我们先了解一下这个项目最终能达到的一个目标,然后以这个来进行项目的分析: 1、实现最基本的HTTP/1.0版本的web服务器,客户端能够使用GET、POST方法请求资源 2、服务器将客户请求的资源以html页面的形似呈现,并能够进行差错处理(如:客户请求的资源不存在时,服务器能够返回一个404...

2017-04-28 07:37:28

阅读数 19605

评论数 3

HTTP长连接和短连接

HTTP是工作在应用层的文本传输协议,它在底层的实现是基于TCP协议的,今天说的HTTP的长连接和短连接实质上是TCP的长连接和短连接。 TCP的长连接和短连接: TCP的连接 在客户端和服务器端之间进行数据传输时,首先需要在client和server之间建立一条通信链路,如果clie...

2017-04-04 16:54:44

阅读数 1195

评论数 0

匿名管道和命名管道

进程间通信(IPC)每个进程有各自不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到。所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间中拷贝到缓冲区,进程2再从缓冲区把数据读走。内核提供的这种机制就是进程间通信。 通信需要媒介,两个进程间通信的媒介...

2017-04-03 15:02:38

阅读数 5882

评论数 0

I/O多路复用之select

I/O多路复用:I/O多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备就绪后,它就通知该进程的应用程序,应用程序就可以马上完成响应的I/O操作,而不需要等待系统完成I/O操作,这样大大提高了效率。I/O多路复用实质上是实现了单线程来处理并发请求。 系统为我们提供了多个函数来实现多路复用...

2017-03-30 16:39:49

阅读数 942

评论数 0

socket编程之实现一个简单的TCP通信

一、理解socket1、socket即为套接字,在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一的标识网络通讯中的一个进程,“IP地址+TCP或UDP端口号”就为socket。 2、在TCP协议中,建立连接的两个进程(客户端和服务器)各自有一个socket来标识,则这两个socket...

2017-03-29 18:33:01

阅读数 42698

评论数 0

Shell 字符串截取方法

一、运算符截取  假设现在有字符串var=http://www.mmm.cn/123.html # 和 ## 号截取字符串(删左边留右边) # :${var#*string} 解释:从左边开始,删除第一个string以及左边的所有字符。var为变量名,#表示截取的运算符。 ## :...

2017-03-29 09:20:51

阅读数 14196

评论数 0

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