【C++】多线程整理

来源:互联网 发布:centos mirror 163 编辑:程序博客网 时间:2024/06/07 05:16

1、进程(process)

程序(program)是数据、指令及其组织形式的描述,而进程则是程序运行的实体。进程(process)是计算机程序对某一数据集合的一次运行活动,是系统进行资源分配和调度的单位,是操作系统结构的基础。在早期,进程就是程序执行的基本单位,不过现在引入了线程的概念,进程就是线程的容器。进程包含两部分,(1)操作系统用来管理进程的内核对象(2)地址空间其中内核对象,是操作系统存放进程的一些统计信息的地方,是操作系统内部分配的一个内存块,该内存块是一个数据结构体,其中的成员维护该对象的各种信息。地址空间里面存放的是,可执行模块、dll模块的代码、数据、以及由代码分配的动态内存空间。

2、线程(thread)

目前,运行一个程序,实际完成代码的执行的是线程,而不是进程,正如线程中所说,它只是充当进程的容器。任何一个程序都至少包括一个线程,这是由于系统会默认为主函数创建一个主线程。在C++11之前,若要进行多线程编程,需要利用操作系统的支持,在不同的系统下需要的API不同,显得有些麻烦,c++11中提供了<thread>,<muetx>,<automic>,<future>等头文件用于支持多线程编程。一个线程同样由两个部分组成(1)操作系统用来管理线程的内核对象(2)线程栈线程栈的意义和地址空间相差不大,里面存放的是执行本线程所需要的函数参数和变量。
原创粉丝点击