自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

转载 线程同步

一,什么是线程同步和互斥同步就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。这里的同步千万不要理解成那个同时进行,应是指协同、协助、互相配合。线程同步是指多线程通过特定的设置(如互斥量,事件对象,临界区)来控制线程之间的执行顺序(即所谓的同步)也可以说是在线程之间通过同步建立起执行顺序的关系,如果没有同步,那线程之间是各自运行各自的!线程互斥是指对于共享的进程系统资源,在各单个...

2018-09-17 19:24:47 129

转载 C语言中堆栈的不同

1.管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆 来说,释放工作由程序员控制,容易产生memory leak。  2.空间大小:一般来讲在32位系统下,堆内存可以达到4G的空间,从这个角 度来看堆内存几乎是没有什么限制的。但是对于栈来讲,一般都是有一定的空间 大小的,当然,我们可以修改3.碎片问题:对于堆来讲,频繁的new/delete势必会造成内存空间的不连续...

2018-09-15 20:31:09 284

转载 进程间通讯方式的优缺点

1)管道管道分为有名管道和无名管道无名管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系一般指的是父子关系。无明管道一般用于两个不同进程之间的通信。当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式。有名管道也是一种半双工的通信方式,但是它允许无亲缘关...

2018-09-14 10:56:50 586

原创 线程和进程的区别

线程是指进程内的一个执行单元,也是进程内的可调用实体,与进程的区别:(1)调度:线程作为调度和分配的基本单元,进程作为拥有资源的基本单位;(2)并发性:不仅进程之间可以并发执行,同一个进程之间的多个线程也可以并发执行;(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源但可以访问隶属于进程的资源;(4)系统开销:在创建或撤销进程时,由于系统都要为之分配和回收资源,导致系统的开销...

2018-09-14 09:28:57 161

转载 指针与引用的区别

1、指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。2、引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为NULL)3、有多级指针,但是没有多级引用,只能有一级引用。4、指针和引用的自增运算结果不一样。(指针是指向下一个空间,引用时引用的变量值加1)5、sizeof 引用得到的是所...

2018-09-11 16:37:22 109

转载 常见的内存错误及其对策

内存分配未成功,确使用了它  产生原因: 内存不足。 解决办法:在使用内存之前检查指针是否为null,如果指针p是函数形参,那么在函数的入口处用**断言:**assert(p!=null);这个语句的作用,如果p!=null,则通过。如果new/malloc,应该用if(p==null),进行预防处理。 内存分配成功,但是未初始,就引用它  产生原因:  没有初始化的概念 ...

2018-09-01 11:21:22 304

转载 char类型的范围为什么是-128~127

在 C 语言中, signed char 类型的范围为 -128~127,每本教科书上也这么写,但是没有哪一本书上(包括老师)也不会给你为什么是 -128~127,这个问题貌似看起来也很简单容易, 以至于不用去思考为什么,不是有一个整型范围的公式吗:  -2^(n-1)~2^(n-1)-1 (n为整型的内存占用位数),所以 int 类型 32 位那么就是 -(2^31) ~ 2^31-1 即 -2...

2018-08-11 23:32:10 1960 2

转载 数组与链表的优缺点

数组的特点在内存中,数组是一块连续的区域。 拿上面的看电影来说,这几个人在电影院必须坐在一起。 数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。 比如看电影时,为了保证10个人能坐在一起,必须提前订好10个连续的位置。这样的好处就是能保证10个人可以在一起。但是这样的缺点是,如果来的人不够10个,那么剩下的位置就浪费了。如果临时有多来了个人,那么10个就不够用了,这时可能...

2018-08-10 11:52:59 411

原创 STM32初识

STM32有什么1、串口—USART,用于跟跟串口接口的设备通信,比如:USB转串口模块、ESP8266 WIFI、GPS模块,GSM 模块,串口屏、指纹识别模块2、内部集成电路—I2C,用于跟I2C接口的设备通信,比如:EEPROM、电容屏、陀螺仪MPU6050、0.96寸OLED模块3、串行通信接口—SPI,用于跟SPI接口的设备通信,比如:串行FLASH、以太网W5500、音频模...

2018-07-18 16:22:03 216

原创 排序方式

主要的排序方式分为:插入型(直接插入、希尔排序)、交换型(冒泡排序、快速排序)、选择型(简单选择排序、堆排序)、归并排序、基数排序。直接插入排序:对于给定的一组记录,初始时假定第一个记录自成一个有序的序列,其余的记录为无序序列;接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列为止。代码实现:#include <stdio.h&g...

2018-02-10 19:32:15 600

原创 二叉树

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结...

2018-02-09 21:48:42 149

原创 C语言笔试题记录(三)

含参数的宏与函数的优缺点:含参数的宏优点:省去了函数调用的开销,运行效率高缺点:由于宏本质上是字符串的替换,所以可能会由于一些参数的副作用导致错误的结果。另外,如果程序中有多次宏替换的话,可能导致代码体积变大。函数的优点:没有带参数可能导致的副作用,计算的正确性较宏更有保证缺点:函数调用需要一些参数,返回地址等入栈,出栈的开销,效率没有宏高结构体与联合体的区别: 联合体用途:使几个不同类型的变量共...

2018-02-08 16:51:55 501

转载 网络模型

1. OSI七层和TCP/IP四层的关系1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。1.3 OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。TCP:transmission co...

2018-02-08 16:37:41 134

原创 队列预习

1.为什么队列有两个指针,一个指向队头,一个指向队尾的后一个2.如何避免头指针与尾指针重叠3.为什么通用队列计算公式里面有队列长度那其实是数组长度4.如何理解队列链式存储插入中最后的Q->rear->next=s ;  Q->rear = s的操作前一个是把队尾的后继设为s,后一个是把s本身设为队尾5.链式队列的队头是否存储数据6.为什么队列出队要引入一个新的结构体指向

2018-02-06 20:32:13 144

原创 计算机内存

虚拟内存技术:虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存[2]  技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Window

2018-02-06 17:22:22 435

原创 C语言基础——数据结构

线性表线性表的定义   定义n个数据元素的有限序列,记作(a1, a2, …, an)ai 是表中数据元素,n 是表长度线性表的特点    除第一个元素外,其他每一个元素有一个且仅有一个直接前驱。    除最后一个元素外其他每一个元素有一个且仅有一个直接后继。顺序表的定义和特点定义  将线性表中的元素相继存放在一个连续的存储空间中。          可利用一维

2018-02-02 19:54:26 9861

原创 C语言笔试题纪录(二)

静态链表中指针表示的是(B)A . 内存地址 B . 数组下标 C .下一元素地址 D . 左、右孩子地址下述对线程说法错误的是(D)A.线程是进程的一部分 B.使用线程有利于提高程序执行效率 C.线程切换开销比进程切换开销低 D.线程间不能共享全局变量进程是由多个线程组成,同一个进程的线程能共享全局变量以下关于TCP协议特点的描述中,错误的是(C)A.TCP协议是一种

2018-02-02 16:35:39 282 1

转载 TCP/IP协议

三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确

2018-02-02 15:38:58 136

原创 C语言笔试题纪录(一)

下列不是Linux系统进程类型的是(D)A.交互进程 B.批处理进程 C.守护进程 D.就绪进程(进程状态)联合体union的内存大小判断:为其包含的成员的内存大小的最小公倍数命令kill 9 的含义是(D)A. kills the process whose PID is 9B. kills all processes belonging to UID 9C. sends

2018-01-31 15:48:16 299

原创 C语言基础(四)

指针的指针:int a=1 ; int*p=&a; int**q=&p命令行参数:argc:命令行参数个数+1(包括文件名本身)*argv[ ]:命令行参数的指针数组int main(char argc ,char* argv[ ])结构体类型:声名结构体类型的一般形式:struct   结构体名   { 成员列表 ; };如 struct student {c

2018-01-31 14:09:14 153

原创 C语言基础(三)

指针:不论什么指针类型,指针的大小总是由机器位数决定,例如32位客户端指针占用4个字节&:取地址 *:在定义时表示指针变量,在用时表示取值 p:p指向的地址 *p:p指向的地址值&p:p本身的地址int *p ; *p = 3 ;上述会出现段错误,修改了未定义的内存,指针指向不明(*p)++与*p++、++*p的区别?(*p)++指p指向内容,然后内容+1*p+

2018-01-29 15:17:48 94

原创 C语言基础(二)

循环结构:while语句, 判断为真则执行下面语句for(表达式1;表达式2;表达式3)  执行语句表达式1:起始条件表达式2:判断条件表达式3:自处理语句过程:先赋予起始条件,判断表达式2的条件,若符合则执行执行语句,接着条件自处理再判断表达式2的条件,符合则接着执行执行语句,知道符合表达式2的条件则退出循环。tips:多重循环尽可能将长循环置于内层数

2018-01-27 10:53:54 102

原创 LinuxC数组与指针,函数中遇到的问题

数组是如何与指针等价的如何理解数组名就是数组在内存存放首元素的地址数组的地址是怎么分配的指针变量作为实参传递参数时传的到底是什么如何理解数组名作为实参传递数据是双向的

2018-01-25 20:45:48 145

原创 Linux初识(二)与C语言基础(一)

热键:双击:tab查看输入路径下包含的文件  tab:命令补全 ↑↓:上一个或者下一个输入的命令 ctrl + c :结束当前进程Makefile : 自动编译格式:   目标 :依赖(.o文件)    条件make clean :清除设置清除格式:  .PHONY: clean  rm * 文件名gdb工具:调试程序gc

2018-01-25 15:23:07 126

原创 linuxC编程第二章预习的十个问题

变量与变量地址绑定,同一类型地址大小固定,那变量本身的数值变化会不会引起数值的溢出内存和地址的关系为何数值用补码来储存静态变量如何修饰函数指针变量本身的地址是什么为什么在函数体内外声明外部函数extern可省略extern函数可以不管函数参数类型、参数个数和返回值类型

2018-01-23 22:07:01 109

原创 linux中的文件处理命令、系统管理相关命令、系统安全相关命令不太明白地方

文件处理命令:file:file命令用来探测给定文件的类型。语法:file[options]文件名主要参数-f:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;-L:直接显示符号连接所指向的文件类别;-v:显示版本信息;-z:尝试去解读压缩文件的内容。grep:[root@www ~]# grep [-

2018-01-23 16:59:00 185

原创 Linux 初识(一)

目录类:/ : 根目录/bin : 可执行的二进制文件目录/boot : 存放Linux启动时的文件目录/dev : 设备文件目录/etc : 操作系统配置文件目录/home : 系统默认的用户目录/root : 系统管理员目录/sbin : (superbin)放置系统管理员使用的可执行命令/tmp : 存放临时文件目录/usr : 应用程序存放目录 

2018-01-23 14:13:56 126

空空如也

空空如也

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

TA关注的人

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