在前面的博文中讨论了进程的相关概念,这里重新引入一下‘线程’的概念。进程有各自独立的地址空间,所以进程间的通信是比较麻烦的,只能借助管道等才能够实现进程间通信。而linux系统中,多个线程共享进程的地址空间(也可以说是进程是一个独占资源的线程),所以线程之间的通..
分类:
编程语言 时间:
2016-07-29 23:03:22
阅读次数:
270
??
1、 进程的地址空间
在32位操作系统中,进程的地址空间为0到4GB,
示意图如下:
图1
这里主要说明一下Stack和Heap:
Stack空间(进栈和出栈)由操作系统控制,其中主要存储函数地址、函数参数、局部变量等等,所以Stack空间不需要很大,一般为几MB大小。
Heap空间的使用由程序员控制,程序员可以使用malloc、n...
分类:
移动开发 时间:
2016-07-10 18:56:21
阅读次数:
275
调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同。Windows提供了两种将DLL映像到进程地址空间的方法: 1. 隐式的加载时链接 这种方法需要DLL工程经编译产生的LIB文件,此文件中包含了DLL允许应用程序调用的所有函数 ...
(1)为什么需要ThreadPool?当我们在使用ThreadPool的时候,首先要明白为什么需要ThreadPool?ThreadPool中到底有些什么?我们知道进程代表程序的一次执行。进程在创建过程中会加载可执行文件到内存(为了提高执行效率,一般是将可执行文件映射到进程的地址空间,进行lazyload..
分类:
编程语言 时间:
2016-06-07 11:20:11
阅读次数:
315
一.进程与线程 进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。一个进程可以包含1-n个线程。 线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自 ...
分类:
编程语言 时间:
2016-05-24 19:03:11
阅读次数:
195
在写程序时了解每个类型的变量存储的位置是很有必要的。...
分类:
系统相关 时间:
2016-05-18 19:59:51
阅读次数:
149
转载至:【http://www.cnblogs.com/longdouhzt/archive/2012/10/13/2722969.html】 每一个进程(包括普通进程和内核进程)的地址空间都分为用户地址空间和内核地址空间两部分,在32位的x86机器上,用户地址空间的范围是0~3G,内核 地址空间的 ...
分类:
其他好文 时间:
2016-05-03 21:58:16
阅读次数:
121
1.进程的三大特征: 独立性:拥有自己的独立的地址空间,一个进程不可以直接去访问其他进程的地址空间。 动态性:是一个系统中活动的指令的集合。 并发性:单个进程可以在多个处理器上并发进行,互不影响。 2.并发性和并行性的区别: 并行是同一个时刻,有多条指令在多个处理器上同时的进行;并发是,快速轮换执行 ...
分类:
编程语言 时间:
2016-05-01 14:50:44
阅读次数:
254