1.1介绍
系统所执行的进程或抽象是所有操作系统的核心概念。现在绝大多数的操作系统在同一时间内都可以进行多项操作。如:计算机用户在编辑WORD文档时,还可以打印该文档、从硬盘缓冲区读取数据、播放音乐等。在执行多任务操作系统中,中央处理单元(CPU)在程序中快速切换,执行每个程序只需几毫秒。
从严格意义上讲,单处理器系统的处理器在一个单元时间内只能执行一个进程。只不过操作系统以极快的速度切换多个进程,营造了一个多进程同时运行的假象。与多处理器系统中硬件支持的真正并行相比,单处理器系统的这种并行行为叫伪并行更合适。(注:伪并行是操作系统在单处理器环境下的特性。)
多线程(multithreading)是现代操作系统中非常重要的概念。多线程即允许执行多个线程,对完成并行任务和提升用户体验非常重要。
在传统的操作系统中,每个进程都有自己的地址空间和一个执行线程,该线程通常叫做主线程(primary thread)。一般而言,运行在同一个进程中的多个线程具有相同的地址空间(即进程的地址空间),在准并行上下文中,这些线程就像是多个单独运行的进程,只不过他们的地址空间相同。(注:准并行地址空间概念是Windows操作系统的特性。在多处理器系统中,Windows为每个进程提供了一个虚拟地址空间,比真正的物理地址空间大得多,因此叫做准并行上下文。)
线程(thread)是操作系统中的一个重要概念,线程对象包含一个程序计数器(负责处理在下一次线程获取处理器时间时要执行什么指令)、一组寄存器(存储线程正在操控的变量当前值)、一个栈(存储与函数调用和参数相关的数据),等等。虽然线程执行在进程的上下文中,但是它们区别很大。进程非常贪婪,想占用所有的资源;而线程比较“友好”,它们彼此合作、交流,而且共享资源(如处理器时间、内存和变量等)。
1.2创建C++项目
准备就绪 确定安装并运行了Visual Studio(VS)
操作步骤 运行Visual Studio,开始----新建项目----C++----选择Win32----选择Win32控制台应用程序 ,并在窗口下方的【名称】右边为项目命名,在【位置】右边选择存储该项目文件的文件夹----接下来可以直接单击右下方的【完成】,这样VS会自动创建所有需要的文件,或者选择【下一步】,然后在附加选项中勾选【空项目】,如果这样做,就得自己创建源文件和头文件,VS不会自动生成所需的文件。
1.3程序结构、执行流和运行时对象
编程范式是计算机编程的基本样式,主要有4种:命令式、声明式、函数式(或结构式)、面向对象式。
准备就绪 确定安装并运行了Visual Studio(VS)
操作步骤 根据以下步骤创建第一个程序示例
1、创建一个默认的C++控制台应用程序,命名为TestDemo
2、打开TestDemo.cpp
3、输入下面的代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc ,TCHAR* argv[])
{
cout<<"Hello World"<<endl;
return 0;
}
示例分析 对于控制台应用程序,main函数有以下4种不同的原型:
int _tmain(int argc,TCHAR* argv[])
void _tmain(int argc,TCHAR* argv[])
int _tmain(void)
void _tmain(void)
第一种原型有两个参数:argc和argv.