一、线程概念 1、引入 我们知道,进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,本篇我们将学习如何在一个进程的地址空间中执行多个线程。有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件, 一方面需要和用户交互,等待 ...
分类:
编程语言 时间:
2017-06-10 17:08:55
阅读次数:
171
一、多线程 1、操作系统有两个容易混淆的概念,进程和线程。 进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。 线程:表示程序的执行流程,是CPU调度执行的基本 ...
分类:
编程语言 时间:
2017-05-29 21:42:09
阅读次数:
197
Posix共享内存涉及以下两个步骤:1、指定一个名字参数调用shm_open,以创建以一个新的共享内存区对象或打开一个已存在的共享内存区对象。2、调用mmap把这个共享内存区映射到调用进程的地址空间。头文件:#include<sys/mman.h>#include<sys/stat.h>#include<fcnt..
分类:
其他好文 时间:
2017-05-25 21:55:36
阅读次数:
213
pmap提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。Pmap实际上是一个Sun OS上的命令,linux仅支持其有限的功能。但是它还是对查看完整的进程地址空间很有帮助。我们需要PID或者运行的进程的唯一进程ID来查看进程内存状态,我们可以通 ...
分类:
系统相关 时间:
2017-04-22 09:31:28
阅读次数:
351
Windows 是多任务的操作系统, 一个任务就是一个应用(应用程序)、一个应用占一个进程; 在一个进程里面, 又可以运行多个线程(所以就有了很多"多线程编程"的话题). 对 Win32 来讲, 系统给每个进程 4GB 的地址空间:低端 2GB($00000000 - $7FFFFFFF) 给用户支 ...
分类:
其他好文 时间:
2017-03-31 10:26:14
阅读次数:
156
1、线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程,它们共享进程的地址空间;而进程有自己独立的地址空间; (2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源 (3)线程是处理器调度的基本单位, ...
分类:
编程语言 时间:
2017-03-20 21:00:55
阅读次数:
189
前言 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据,以及其他的一些资源组成。32位系统的进程分配4G的虚拟地址空间。内存地址范围是0x00000000~0xFFFFFFFF。这个内存地址空间是每个进程独立的,也就是说,在一个进程中是不能访问其他进程的地址空间的。 举个 ...
分类:
系统相关 时间:
2017-03-03 22:36:22
阅读次数:
451
在多个CPU的主机上,线程是可以同时执行的。 多线程对于多进程的优点: 1、在多进程的情况下,每个进程都有自己的地址空间。而在多线程情况下,同一进程内的线程共享进程的地址空间, 因此,创建一个新的进程要耗费时间来为其分配系统资源,而创建一个新的线程花费的时间要少得多。 2、在系统调度方面,由于进程拥 ...
分类:
编程语言 时间:
2017-02-22 14:24:02
阅读次数:
184
http://blog.csdn.net/xu3737284/article/details/12710217 32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内核空间。进程的地址空间存在于虚拟内存中。虚拟内存不能被禁用。 进程地址空间 进程地址空间分 ...
分类:
系统相关 时间:
2017-02-07 01:23:01
阅读次数:
454
多线程 1、进程 进程:当一个程序进入内存运行时,它就成为了进程。进程具有独立性、动态性、并发性。 A、独立性:进程是系统中独立存在的实体,它可以拥有自己独立的资源,每一个进程都拥有自己私有的地址空间。在没有进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间。 B、动态性:进程与程序 ...
分类:
编程语言 时间:
2017-01-05 01:25:58
阅读次数:
300