摘要: 我们已经知道进程通信的方式是有多种的,在上一篇博客中讲述了通过管道实现简单的进程间通信,那么接下来我们看看与之类似的另一种方式,通过消息队列来实现进程间通信。 什么是消息队列 消息队列提供了一种由一个进程向另一个进程发送块数据的方法。另外,每一个数据块被看作有一个类型,而接收进程可以独立接收具有不同 阅读全文
posted @ 2016-09-10 21:49 Mr_listening 阅读(4131) 评论(0) 推荐(1) 编辑
摘要: 权限掩码umask 我们都知道在linux下创建一个文件或者目录之后是可以通过chmod等命令进行权限设置,来达到给当前用户、用户组用户以及其他用户分配不同的访问权限。那么,我们新创建的目录和文件本身也是有它的默认权限的,这个默认权限是什么,就是由权限掩码umask所确定的。它的功能可以说与chmo 阅读全文
posted @ 2016-08-30 11:26 Mr_listening 阅读(19196) 评论(2) 推荐(6) 编辑
摘要: AVL树的概念 在说AVL树的概念之前,我们需要清楚二茬搜索树的概念。对于二叉搜索树,我们知道它可以降低查找速率,但是如果一个二叉搜索树退化成一棵只剩单支的搜索树,此时的查找速率就相当于顺序表中查找元素,效率变低,时间复杂度由原来的O(logN)变为O(N)。 此时就有了AVL(高度平衡二叉搜索树) 阅读全文
posted @ 2016-08-19 19:51 Mr_listening 阅读(15356) 评论(4) 推荐(2) 编辑
摘要: 一、二叉搜索树(BSTree)的概念 二叉搜索树又被称为二叉排序树,那么它本身也是一棵二叉树,那么满足以下性质的二叉树就是二叉搜索树: 1、若左子树不为空,则左子树上左右节点的值都小于根节点的值 2、若它的右子树不为空,则它的右子树上所有的节点的值都大于根节点的值 3、它的左右子树也要分别是二叉搜索 阅读全文
posted @ 2016-08-18 09:27 Mr_listening 阅读(27138) 评论(0) 推荐(6) 编辑
摘要: 方法一: 通过修改配置文件来登录mysql,方法也不难。 操作步骤: 在安装目录下找到配置文件my.ini 2、在my.ini中找到 [mysqld]字段,在它底下加上skip-grant-tables,保存。这里需要看清楚,因为前面还有一个[mysql]字段我们要找的是[mysqld]字段 3、此 阅读全文
posted @ 2016-08-15 19:15 Mr_listening 阅读(336) 评论(0) 推荐(1) 编辑
摘要: 一、认识构造函数 当创建一个类类型对象时,类通过一个或者几个特殊的成员函数来控制对象的初始化,这种函数就是构造函数。它的任务就是用来初始化类对象的成员的,所以当创建类对象或者类对象被创建就会调用构造函数。 构造函数的几个特点: 1.函数名和类名必须一样,没有返回值。 2.当没有显式的定义构造函数时, 阅读全文
posted @ 2016-06-04 11:23 Mr_listening 阅读(6126) 评论(3) 推荐(5) 编辑
摘要: 我们知道在C++中有函数重载这样一个东西,当我们定义了几个功能类似且函数名是一样的函数的时候,只要它的参数列表不同,编译是可以通过的,但是在C中是不可以的。 如果这样写的代码,在C中会报出errorC2371,说是add函数重定义。但是如果在C++环境下这样是允许的,叫做函数的重载,只要你的几个函数 阅读全文
posted @ 2016-05-21 18:23 Mr_listening 阅读(1003) 评论(1) 推荐(1) 编辑
摘要: 相信如果一个人让我们求一个斐波那契数列,如果你学过c语言,你一定会说用递归法啊,很容易就实现了,但是如果人家让你求斐波那契的第50个数,而且你对递归了解的话,估计帮你不会说递归了,如果了解够深的话,其实你会说递归也可以求出来。 1、递归 首先我们来说说什么是递归,简单的来说,就是一个函数需要调用自己 阅读全文
posted @ 2016-05-14 09:45 Mr_listening 阅读(3103) 评论(0) 推荐(6) 编辑
摘要: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。这道题是一道非常经典的题目,很多面试中都会遇到。但其实我们一拿到这个问题,可能都会想到那就直接找呗,我们把这样一个二维数组遍历一遍不是很快就找到了吗,但这并不是面试官所想看到的,下面我们来分析分析。 阅读全文
posted @ 2016-04-23 15:52 Mr_listening 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 我们先来说说进程间通信(IPC)的一般目的,大概有数据传输、共享数据、通知事件、资源共享和进程控制等。但是我们知道,对于每一个进程来说这个进程看到属于它的一块内存资源,这块资源是它所独占的,所以进程之间的通信就会比较麻烦,原理就是需要让不同的进程间能够看到一份公共的资源。所以交换数据必须通过内核,在 阅读全文
posted @ 2016-09-09 23:08 Mr_listening 阅读(17190) 评论(1) 推荐(3) 编辑
摘要: Crontab 在linux中,crontab的用来设置定期执行指定的命令,我们可以用它来指定一些需要重复的事情,Linux系统的用户只需将想要定期要执行的命令序列加到crontab文件中,操作系统即会按用户配置的时间执行这些命令序列。向crontab文件里添加指令之前,需要检查下crontab服务 阅读全文
posted @ 2016-09-09 22:23 Mr_listening 阅读(5170) 评论(0) 推荐(1) 编辑
摘要: 线程安全:一个函数被称为线程安全的(thread-safe),当且仅当被多个并发进程反复调用时,它会一直产生正确的结果。如果一个函数不是线程安全的,我们就说它是线程不安全的(thread-unsafe)。我们定义四类(有相交的)线程不安全函数。 第1类:不保护共享变量的函数 将这类线程不安全函数变为线程安全的,相对比较容易:利用像P和V操作这样的同步操作来保护共享变量。这个方法的优点是在调用程序中... 阅读全文
posted @ 2016-09-05 19:56 Mr_listening 阅读(975) 评论(0) 推荐(0) 编辑
摘要: 》进程控制块 在linux中进程信息存放在叫做进程控制块的数据结构中,每个进程在内核中都有⼀个进程控制块(PCB)来维护进程相关的信息,Linux内核的 进程控制块是task_struct结构体。在Linux中,这个结构叫做task_struct。 task_struct是Linux内核的一种数据结 阅读全文
posted @ 2016-08-27 19:21 Mr_listening 阅读(1604) 评论(0) 推荐(0) 编辑
摘要: Linux下的文件权限 在linux下每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问。最为我们熟知的一个文件或目录可能拥有三种权限,分别是读、写、和执行操作,在这里不做详细说明。我们创建一个文件后系统会默认地赋予所有者读和写权限。当然我们也可以自己修改它,添 阅读全文
posted @ 2016-08-27 16:40 Mr_listening 阅读(18139) 评论(2) 推荐(7) 编辑
摘要: 文件的三个时间 我们已经很熟悉windows系统了,那么我们在windows下新建一个文件,我们知道它在保存的时候肯定是会保存一下文件的创建时间之类的信息的,那么我们来看看windows下的一个文件保存了几个时间信息。 这是我在电脑找到的一个cpp文件,看它的属性是可以看到保存了这个文件的创建时间、修改时间、和访问时间三个时间。 那么在linux中是怎样的,我们在linux中新建一个文... 阅读全文
posted @ 2016-08-21 23:08 Mr_listening 阅读(31197) 评论(5) 推荐(5) 编辑
橙.文森特博客