一、线程的概述 1.进程: 正在运行的程序称之为一个进程,进程负责了这个程序的内存空间分配,代表了内存中的执行区域。 问题:windows号称是多任务的操作系统,那么windows是同时运行多个应用程序吗? 从宏观的角度:windows确实是在同时运行多个应用程序。 从微观的角度:cpu是做了一个快 ...
分类:
编程语言 时间:
2017-09-21 19:32:15
阅读次数:
180
内存分析 栈: 1. 每个线程私有,不能实现线程间的共享! 2. 局部变量放置于栈中。 3. 栈是由系统自动分配,速度快!栈是一个连续的内存空间! 堆: 1. 放置new出来的对象! 2. 堆是一个不连续的内存空间,分配灵活,速度慢! 方法区: 1. 被所有线程共享! 2. 用来存放程序中永远是不变 ...
分类:
其他好文 时间:
2017-06-10 14:06:23
阅读次数:
218
简述 判断一个list集合是否为空,我们的惯性思维是判断list是否等于null即可,但是在Java中,list集合为空还是为null,这是两码事。 新建一个list对象,默认值是空,而非null; 引用 举个形象的例子,我有一个空着的水杯(list),而你没有,那你是null,我的size为0。你 ...
分类:
其他好文 时间:
2016-11-26 16:49:52
阅读次数:
190
进程:正在运行的程序,负责了这个程序的内存空间分配,代表的内存中的执行区域 线程:就是在一个进程中负责一个路径 多线程:就是在一个进程中多个执行路径同时执行 进程负责了一个程序的内存空间 线程负责了一个程序的执行路径 假象: 电脑上的程序同时在运行。“多任务”操作系统能同时运行多个进程(程序)——但 ...
分类:
编程语言 时间:
2016-10-18 16:04:15
阅读次数:
151
前言
首次适应算法(FF,first fit)是内存基于顺序搜索的动态分配分区算法,在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止,然后在按照作业的大小从该分区中划出一块内存空间,分配给请求者,余下的空闲分区仍留在空闲链中。若从链首直至链尾都不能找到一个能满足要求的分区,则表明系统中已没有足够大的内存分配给该进程,内存分配失败,返回。
该算法倾向于优...
分类:
编程语言 时间:
2016-06-25 15:08:21
阅读次数:
278
结构体内存对齐的原因:
在运行一个结构体时,编译器需要给结构体中的每个变量成员分配内存空间,如这样一个结构体中
typedef struct A
{
char c1;
int i;
int j;
}A;
对其内存空间分配问题进行分析,如若不进行内存对齐,它的内存空间是:
char类型变量c1占1个字节,紧接着int类型变量i与j分...
分类:
其他好文 时间:
2016-05-13 00:42:13
阅读次数:
107
1. 使用场景公共语言运行时控制数据字段的类或结构在托管内存中的物理布局。但是,如果想要将类型传递到非托管代码,需要使用StructLayout 属性。2. 内存分配问题。如果不显示的设置内存对齐方式(通过StructLayout.Pack属性决定), C#默认是以4个字节(byte)为单位,会出现...
分类:
编程语言 时间:
2015-12-04 18:20:31
阅读次数:
190
C语言中的申请内存空间的函数 malloc()char *p = NULL;p = (char *)malloc( sizeof(char) * 100 );以上代码的含义是:定义一个 char型 的 指针p通过malloc函数给 指针p所指向的内存空间分配大小p是内存地址sizeof是获取char...
分类:
其他好文 时间:
2015-11-22 01:31:03
阅读次数:
163
1、/boot 启动分区 存放内核和启动程序 空间分配:100M2、/swap 交换分区 虚拟内存 空间分配:物理内存的2倍3、/ 根分区 存放所有文件
分类:
系统相关 时间:
2015-10-21 12:05:33
阅读次数:
206
指针
本节引言:
上一节我们对C语言复合数据类型中的数组进行了解析,在本节中,我们会对C语言复合数据类型中的
重点,C语言的灵魂-----指针进行学习!使用指针的好处:利用指针可以表示与使用复杂的数据结构;
更加方便地使用我们的数组与字符串;可以像汇编语言一样直接处理内存单元地址;可以动态地进行内存空间
分配,C语言指针是重点,同时也是C中的难点,就让大家跟随笔者的脚...
分类:
其他好文 时间:
2015-08-06 13:25:08
阅读次数:
180