自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小不点的博客

关于计算机学习方面的总结

  • 博客(15)
  • 收藏
  • 关注

原创 阻塞与非阻塞,同步与异步

(一)小情景模拟阻塞与非阻塞,同步与异步所需材料:本人、普通水壶、水开后会发出响声的水壶情景一:我主动用普通水壶去烧水(主动请求事件:同步),并且一直站在旁边等待水开(等待数据准备好在进行下一步,阻塞),然后做饭;     同步阻塞情景二:我主动用普通水壶去烧水(主动请求事件)不需要一直检测,每隔一段时间会过来看水是否开了(没有一直等待事件:非阻塞,但还是存在主动查看事件的行为),一直...

2018-07-29 11:40:07 294

原创 TCP/IP中的拥塞控制

(一)慢开始和拥塞避免算法(二)快开始和快恢复 

2018-07-28 20:30:13 1172

原创 TCP四次挥手终止连接的TIME_WAIT状态

(1)存在TIME_WAIT状态的原因    首先,只有主动调用closed的一方才会在接收到对端的ACK后进入time_wait状态;并且任意一方都可以先发起closed;下图为四次挥手状态:原因一:保证TCP全双工连接的可靠释放解析:假设场景为客户端主动向服务器发起断开连接,假如在主动方(客户端)最后一次发送的ACK在网络中丢失,根据TCP的超时重传机制,被动方(服务器)需要重新...

2018-07-28 19:09:52 7228

原创 TCP/IP三次握手建立连接和四次挥手终止连接

(一)三次握手建立连接(1)首先服务器端进行初始化,由最初的closed状态顺序调用socket、bind、listen后进入listen状态;(2)客户端进行初始化,由最初的closed状态顺序调用socket、connect主动连接服务器套接字进入SYN_SENT状态(向服务器发送将SYN置为1的同步数据段);(3)服务器接收到SYN后向客户端发送将SYN置为1的同步数据段和ACK...

2018-07-28 17:06:12 7351

原创 单例模式的实现

(一)单例模式的设计目的单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点;(1)基于全局访问点的思想,很容易想到定义全局或者静态对象,但是这样不能保证该类只声明一个静态对象,并没有实现仅有一个对象的思想;(2)单例模式设计方式  将类的构造函数写在私有下; 定义一个静态的指针指向该类唯一的对象; 定义一个公有下返回该对象的静态方法代码如下://单例模式 c...

2018-07-27 19:12:38 2395 1

原创 IA之32位体系下Linux系统下虚拟地址映射(下)

   在上篇我们讲到段机制实现了逻辑地址到线性地址的映射,接下来检测是否开启分页机制,如果未开启分页机制此时的线性地址就是物理地址;如果开启了分页机制,那么此时的线性地址(虚拟地址)需要经过多级页表映射找到其物理地址。    在介绍之前我们先认识了解一下CPU中的寄存器,主要分为三类,如下图所示:对于页表映射机制来说根据CPU位数的不同,他们的页表映射级数不同,32位为二级映射,36位...

2018-07-26 21:26:31 340

原创 如何实现一个不被继承的类?

(一)单例模式下的不被继承的类从继承的特性来说,派生类继承其基类的私有成员,但是不可访问;派生类的构造要先调基类的构造函数构造基类然后在调自己的构造函数构造自己;我们可以将基类的构造函数写在private下,那么基类此时就是一个不被继承的类;但是这样基类是不可被继承,但同时他也不会正常实例化对象,因为不可访问其私有成员;这时我们可以借助单例模式来实现,通过静态方法实现返回一个对象,但是这种实例...

2018-07-26 10:46:43 1235

原创 从编译链接的ELF结构看static关键字

本文主要讨论static在C++中的应用(1)static修饰全局变量和局部变量全局变量属于数据,不是放在.data段,就是在.bss段;如果是一个常量字符,那么存储于.rodata段;局部变量属于指令,存储于.text段,运行时系统为其分配栈上空间,函数的局部变量此时表示栈上的一段内存;那么加了关键字之后有何变化呢?请看如下代码:int gdata1 = 10;//全局变量...

2018-07-25 09:50:01 686

原创 直接插入排序和选择排序

(一)直接插入排序思路:(1)用一个临时变量存放待排序的数字;(2)从数组前依次遍历找第一个比待排序数字大的数字的位置;(3)将从待排序的数字位置开始,到找的要插入的数字的位置之间的数字向后挪一位,最后将待排序数字插入到找到的位置;代码如下:void Insert_Sort( int *arr,int len ){ int tmp = 0;//当作哨兵位 ...

2018-07-24 21:39:38 9369

原创 IA之32位体系下Linux系统下虚拟地址空间映射(上)

(一)inter X86体系发展(1)在8080-8085这两种体系中,CPU位数均为8位,也就意味着ALU(算术逻辑单元)一次能够计算的整数的最大字节数为1byte,即ALU的宽度为8位,数据总线的条数为8条;地址总线的条数为16条,可寻址能力为2^16=64k,;(2)在8086又开始了一个新的体系,CPU位数为16位;从80386之后CPU位数就真正开始为32位,地址总线为20条。...

2018-07-24 20:54:20 494

原创 Linux进程间通讯方式

我们常常使用的进程间通讯主要有信号、管道、共享内存、消息队列、信号量、socket这六种方式。(一)信号(1)它是一种通知机制;一种提前定义好的某些特定事件。信号可以被产生也可以被接收;信号最重要的就是如何发送信号,如何修改响应方式?Linux下支持的信号,举例有:SIGCHLID:表示子进程终止,默认对此信号的响应方式是“SIG_IGN”忽略;SIGINT:表示用户产生终止符,默...

2018-07-23 23:46:22 366

原创 C++编译链接全过程

今天博文主要讨论的问题是:我们编写的程序代码是怎样运行起来的?到底运行的是什么内容?平时我们所说的编译主要包括预编译、编译、汇编三部分,这三部分分别都干什么工作,主要职能有哪些,接下来我们一步步探讨总结。(一)预编译(1)由源文件“.cpp/.c”生成“.i”文件,这是在预编译阶段完成的;gcc -E .cpp/.c --->.i(2)主要功能 展开所有的宏定义,消除“#de...

2018-07-22 16:47:00 12112 4

原创 C/C++中static关键字的用法

(一)变量的分类变量可以分为全局变量、静态全局变量、静态局部变量和局部变量这四种。这几种变量的特点如下:(1) 按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。(2) 按作用域1.全局变量在整个工程文件内都有效;2.静态全局变量只在定义它的文件内有效;3.静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,...

2018-07-17 15:27:20 1008

原创 C++总结2—shared_ptr交叉引用及多线程安全问题

智能指针是存储指向动态分配对象指针的类,用于生存期控制;能够确保正确销毁动态分配的内存,防止内存泄露。本博文参考博客https://blog.csdn.net/yusiguyuan/article/details/40628805(1)智能指针的分类1.不带引用计数的智能指针auto_ptr 、unique_ptr、 scoped_ptr2.带引用计数的智能指针shared_ptr强智...

2018-07-16 22:33:49 3185 3

原创 C++总结1—shared_ptr

一、智能指针介绍(1)C++11:头文件<memory>     aotu_ptr(已经在C++11中不使用了)     缺点:智能指针的设计必须要符合实际指针的应用---可以允许多个指针指向同一块空间,将一个指针赋值给另一个指针时这 两个指针都可以指向统一空间;而auto_ptr的设计方式只允许一块空间上只能有一个指针指向它;\     unique_ptr(就是boost库中的sc...

2018-07-15 18:04:52 170

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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