- 博客(64)
- 收藏
- 关注
转载 生产者消费者模型
生产者-消费者问题,也叫做缓存绑定问题(bounded-buffer),是一个多进程同步问题。 即有两个进程:制造少和消费者,共享一个固定大小的缓存 制造商的工作是制造一段数据,放进缓存,如此重复。 消费者一次消费一段数据,从缓存中取出。 要保证不让制造商在缓存还是满的时候仍要向内写数据,不让消费者试图从空的缓存中取出数据。 ...
2018-06-10 20:25:00
163
转载 select poll epoll 总结(转载)
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写...
2018-06-10 19:45:00
117
转载 Xshell免费版本安装过程
发现本机的Xshell 5过期了用不了。在百度里搜索,下载安装后还是不可以使用。需要购买注册,后寻的一方法,分享给大家。1.官网进入官网,然后点击Download下方的Free License菜单。 https://www.netsarang.com/2.预下载...
2018-05-12 15:20:00
203
转载 黑盒和白盒测试
黑盒测试:是测试中的比较重要的手段。又称为数据驱动的测试或者输入输出驱动测试。 所谓黑盒,也就是说相当于把一个东西用一个黑盒子装着,就比如说手机,外表一个壳子,里面的电路结构我们并不知道,这个黑盒也是这个意思,那么我们应该怎样来发现内部存在怎么样的问题呢?是否符合我们的要求?这就需要测试,这种在不知道内部结构的情况下进行的测试叫做黑盒测试。 怎么测试...
2018-05-07 10:11:00
742
转载 顺序表和链表优缺点
顺序表:他是在计算机内存中以数组形式保存的线性表。使用一组地址连续的存储单元依次存储数据元素的线性结构。单链表:是一种链式存储的结构。用一组地址任意的存储单元存放线性表中的数据元素。(存储地址空间不需要是连续的)优缺点:空间的开辟 顺序表是需要开辟连续的空间,当需要的空间不够,而有需要插入的时候,就需要再重新开辟空间,将原...
2018-04-03 12:23:00
426
转载 指针和引用
引用:就是给已经存在的变量起一个别名 定义的格式:类型&引用变量名 = 已定义过的变量名。 引用的特点:1、一个变量可以取多个别名 2、引用必须初始化 3、引用只能在初始化的时候引用一次,不能改变为再引用其他的变量(从一而终)可以引用一个引用的变量(别名的别名):int& b = a; in...
2018-04-03 12:17:00
91
转载 常见操作系统面试题
进程线程的区别: 1. 进程是资源的分配和调度的一个独立单元,而线程是CPU调度的本单元 2. 同一个进程可以包含多个线程,并且线程共享整个进程的资源(寄存器,堆栈,上下文)一个进程至少包含一个线程。 3. 进程的创建调用fork或者 vfork,而线程的创建调用pthread_create(),进程结束之后他所有的线程销毁都会销毁,而线程...
2018-04-02 21:03:00
163
转载 网络套接字编程(UDP)
在了解网络编程之前,我们要先了解一下基础知识。IP地址IP协议有两个版本,ipv4和ipv6。通常情况下,在没有特别说明的情况下,我们都是用的ipv4协议。 1、IP地址在IP协议中是用来标识网络中不同主机的地址 2、对于iPhonev来说,IP地址是一个4字节,32位的整数 3、我们通常也用点分十进制的字符串来表示IP地...
2018-03-26 21:35:00
102
转载 Windows下的问题
最近不知道怎么了,最近电脑只要一打开就会出现下面的错误,超级烦。百度发现是风行加速器的问题。然后再电脑上把风行加速器卸载了,然后才好^_^开心 你按照提示的这个路径进去就会看到,那其实是风行加速器的安装路径,所以,卸载之后,就好了。 转载于:https://www.cnblogs.com/chan0311/p/9427...
2018-03-24 18:02:00
94
转载 解决虚拟机选择桥接模式连不上网(CentOs6.5)
保证你Vmware里面的虚拟机是关机状态右键点击电脑屏幕右下角小电脑图标,选择打开网络与共享中心,然后点击弹出来的窗口左上角的“更改适配器设置”。这里指的是你Windows系统下的网络共享中心。 然后点击你当前连接的网络,按照下面步骤进行即可。在打开的窗口中选择本地连接,点右键,选择属性在弹出的窗口中选择VMware Bridge Portoc...
2018-03-17 10:07:00
878
转载 虚拟机无法联网
虚拟机无法联网。之前因为调到了host模式,然后很久没用,再想联网的时候发现无法联网了,然后百度发现这个很好用。分享一下。 亲测可用。解决方案 转载于:https://www.cnblogs.com/chan0311/p/9427317.html...
2018-03-06 20:23:00
149
转载 Linux下软件安装的几种方式
yum工具yum list 列出所有可用rpm包资源 搜索某个包: yum search ‘keywords’或 yum list |grep ‘keywords’ yum 安装包: yum install -y filename(包名) yum 卸载包: yum remove -y filename (包名) yum 升级包: ...
2017-12-15 23:40:00
83
转载 为什么经常用const来代替宏
常量:是一种标识符,值在运行期间不变。C语言用#define,C++也可以用,它还可以用const来表示常量。 常量可以使程序的可读性变强,想一下如程序中全是变量字符串,会不会很麻烦呢?我们写程序会相当复杂。 宏和const具体就不介绍怎么使用了。注意的是,宏后面没有分号,const有的。const和宏的比较:1.const是有类型的...
2017-12-10 20:46:00
187
转载 进程基础
什么是进程?进程的概念:程序的一个执行实例,正在执行的程序。简单来说,比如你打开了一个APP这就是一个进程,在Linux系统下,在命令行一个ls的命令也是一个进程。从内核的角度来说,进程是担当分配系统资源(CPU时间,内存)的实体。怎么描述进程进程的所有信息都放在一个叫做进程控制块的数据结构中,称它为PCB。Linux操作系统下的PCB称为t...
2017-11-28 22:10:00
80
转载 Linux下的目录及一些重要命令
进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限.我们知道Linux下一切皆文件,所以说一个目录当然也是文件,一个文件的权限有三种,分别是 r w x 读,写,和 执行权限。 那如果文件没有了这几个权限?我们还能够对它进行增删查(cd, touch, ls, rm, mv等)操作码...
2017-11-11 21:26:00
99
转载 Map和Set简单使用
学过红黑树之后,就自然学到了map和set,作为STL中较为普遍用到的容器,我们应该熟练的使用它,下面简单介绍他们的具体使用map 和set的底层就是红黑树,map是K,V模型,而set是K模型。map的简单介绍 以上就是map的内部实现的成员函数,构造,插入删除,等。map作为K,V模型,可以有很多用途,比如实现一个字典。m...
2017-11-07 20:44:00
166
转载 C++中的类型转换
C++中的类型转换:static_cast、reinterpret_cast、const_cast、dynamic_xast一般情况下我们写的类型转换,就是加上一个圆括号 float a;int b =(int)a; 但是这样有缺陷:因为所有的形式都是一样的。所以可视性就会很差,如果发生错误,不容易找到错误的原因。所以c++引入了强制类型转换操作...
2017-08-24 19:05:00
121
转载 模拟实现memcpy和memove
memcpy首先我们应该知道memcpy有什么作用,他是一个内存拷贝函数,函数原型如下:void * memcpy ( void * destination, const void * source, size_t num );它的作用就是将源拷贝到目标,拷贝num个字节。下面看具体代码实现。void *MyMemcopy(void * de...
2017-08-24 18:43:00
188
转载 inode号与软硬链接
1什么是inode理解inode要从文件存储说起 文件存储在硬盘上,硬盘的最小存储单元叫做扇区(sector)。每个扇区存储512字节(相当于0.5kb) 操作系统读取硬盘的时候,不会一个一个扇区的读取,这样效率太低,而是一次性读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的”块“,是文件存储的最小单位。“块”的大小,最常...
2017-08-06 18:03:00
152
转载 C++中模板为什么不支持分离编译
程序运行的过程首先我们知道, 一个程序的执行过程分为四个部分,预处理,编译,汇编,链接 下面用一副图来说明模板的分离编译这里就是普通的代码,是可以进行分离编译的,但是为什么在模板中就不可以了呢,下面我们来看一段简单的代码,来进行分析//template.htemplate<class T>class AA{p...
2017-08-05 15:12:00
101
转载 C++中的多态和多态对象模型
什么是多态所谓多态,也就是说“多种形态” C++中虚函数就是为了实现多态 虚函数–类的成员函数前面加上virtual关键字,则这个函数就是虚函数 多态的形成条件: 1、虚函数的重写 2、父类的指针或者引用调用重写的虚函数 例如:A*p = & b; A是一个父类,b是一个子类对象 这个时候就是形成了多态。这个时候调用函数与类型无...
2017-07-27 21:03:00
103
转载 CRC校验
什么是CRCCRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。CRC的基本原理...
2017-07-23 18:26:00
146
转载 TCP中常见的定时器
TCP 是提供面向链接的、全双工的、面向字节流的可靠性服务。 TCP 提供可靠的传输层,它使用的方法之一就是确认从另一端收到的数据。但是数据和确认都可能会丢失,TCP 通过在发送时设置一个定时器来解决这个问题。如果当定时器溢出时还没收到确认,它就会重传该数据。常见的四种TCP定时器(Timer):重传计时器(Retransmission T...
2017-07-23 17:23:00
56
转载 TCP中URG与PSH的联系
什么是URG/PSHURG(紧急位):紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲的) PSH(急迫位):在一个交互程序中,当...
2017-07-23 16:29:00
142
转载 菱形继承的二义性和数据冗余问题
什么是继承继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。 继承的方式分为: 公有继承、保护继承、私有继承 总结: 1.基类的私有成员在派生类中是不能被访问的,如果一些基类成员在类外不想被基类对象直接访问,但需要在派生类中能访问,就定义为保护的。可以看出保护成员限定符是因...
2017-07-20 22:58:00
160
转载 C++实现双链表
双向链表主要实现了头插,头删,尾插尾删,任意位置的插入删除,链表的逆置以及链表的深浅拷贝在这里说明一下,链表用的最多的就是数据的插入什么的,所以这里解决深浅拷贝问题,用的是深拷贝,单链表,顺序表也是一样,都是用了深拷贝。 双向链表相比较于单链表而言,相对复杂一点,有两个指针,来进行实现链式结构 先面试具体代码#include<ios...
2017-07-20 18:51:00
112
转载 C++实现单链表
单链表相对于顺序表,多了一个next指针,用来连接数据,构成链式结构 下面是代码#include<iostream>#include<assert.h>using namespace std;typedef int DataType; struct SListNode { SListNode* ...
2017-07-20 14:26:00
127
转载 C++实现顺序表
顺序表可以看做是一个数组用来存放数据下面用C++来实现顺序表#include<iostream>#include<assert.h>using namespace std;typedef int DataType;class SeqList//顺序表{private: DataType*_array...
2017-07-20 14:21:00
184
转载 引用计数的写时拷贝
什么是写时拷贝首先我们需要知道什么是写时拷贝,写时拷贝,通俗点说也就是写的时候拷贝。那么什么是写的时候拷贝呢,这又是什么意思呢? 举个例子,创建一个日期类的对象,然后又用这个对象拷贝构造了多个对象,也就是说这几个对象所指向的是同一块空间,那么当你对其中一个对象进行读操作的时候,什么问题都不会有,那么当你对某个对象进行写操作的时候,问题就出现了,一个...
2017-07-15 16:57:00
69
转载 C++中的动态内存管理
malloc/free和new/delete之间关系和差异相同点:都可用于申请动态内存和释放内存 不同点:(1)操作对象不同 malloc/free是C++/c语言的标准库函数,new/delete是c++的运算符,对于非内部数据类型的对象而言,只有malloc、free是无法满足动态对象的要求的。因为对象在创建的时候会自动调用...
2017-07-14 18:55:00
125
转载 C++对传参和传返回值时构造的优化处理
首先来介绍一下C++中的四个默认函数(1) 构造函数 成员变量为私有的,要对它们进行初始化,必须用一个公有成员函数来进行。同时这个函数应该有且仅在定义对象时自动执行一次,这时 调用的函数称为构造函数(constructor) 。 构造函数是特殊的成员函数,其特征如下:a. 函数名与类名相同。 b. 无返回值。 d. 构造函数可以重载...
2017-07-12 20:15:00
107
转载 端口分类调研
一台计算机一共又多少有效端口计算机一共有65535个有效端口,但是一般使到的也就是十几个什么是端口在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围...
2017-07-08 20:00:00
119
转载 初识C++
作用域第一次接触C++相信大部分人都是会用到using namespace std;这句代码。就是命名空间,那么为什么会使用这个呢?首先我们先来了解一下作用域这个概念。然后再来说命名空间。在C语言中,我们知道,有三个层次的作用域,即文件(编译单元),函数和复合语句。C++中又引用了类作用域,类是出现在文件内的。通俗点讲就是每个大括号范围内的内容就...
2017-06-29 20:35:00
74
转载 Linux下死锁的调研
线程的同步与互斥同步: 按照特定顺序访问临界资源,在互斥基础上实现。 互斥:对临界资源的访问时串行式的。每次只能有一个线程访问。 对于多个线程的访问,访问冲突的问题是很普遍的,解决的办法是引入互斥锁,获得锁的线程可以完成“读-修改-写”三步操作组成原子操作,要么都执行,要么不执行,不会执行的中间被打断,也不会再其他处理器上并行做这个操作。 ...
2017-06-18 00:23:00
88
转载 C语言实现单链表面试题(进阶篇)
首先给出单链表的结构,下面实现具体代码typedef int DataType;typedef struct Node{ DataType data; struct Node*next;}Node,*pNode,*pList;//结点typedef struct ComplexNode{ DataType D...
2017-06-15 23:19:00
61
转载 C语言实现单链表面试题(基础篇)
顺序表和链表的优缺点顺序表: 1. 内存中地址连续 2. 长度不可变更 3. 支持随机查找 可以在O(1)内查找元素 4.适用于需要大量访问元素的 而少量增添/删除元素的程序 链表 : 1. 内存中地址非连续 2. 长度可以实时变化 3. 不支持随机查找 查找元素时间复杂度O(n) 4. 适用于需要进行大量增添/删除元素操作而对访...
2017-06-15 19:34:00
113
转载 IPC之—共享内存
什么是共享内存共享内存允许两个或更多进程访问同一块内存,就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。在Linux中,每个进程都有自己的P C B 和地址空间,并且都有一个对应的页表,负责将进程的地址和物理地址进行映射,通过MMU来管理。创建一段共享存储...
2017-06-10 22:32:00
75
转载 IPC之—信号量
什么是信号量信号量的实质就是计数器,用来统计临界资源数。这个计数器的值为0或1,称为,二元信号量,二元信号量是用来保护临界资源的。 临界资源:不同进程能够看到的一份公共的资源,且一次仅允许一个进程使用的资源称为临界资源。 临界区:临界区是一段代码,在这段代码中进程将访问临界资源,当有进程进入临界区时,其他进程必须等待,有一些同步的机制必须在临界区...
2017-06-10 20:40:00
102
转载 IPC之—消息队列
什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为是有一个类型,接收者今晨会二手的数据块可以有不同的类型值。我们可以通过发送消息来避免命名管道的同步和阻塞问题。消息队列与管道不同的是,消息队列是基于消息的,而管道是基于字节流的,且消息队列的读取不一定是先入先出。消息队列与命名管道有一样的不足,就是每个消息队...
2017-06-07 21:47:00
209
转载 初识多线程
线程的概念线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多...
2017-06-06 21:03:00
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人