并发和并行
---并发指一个CPU可以异步的处理多个进程
---并行则是一个CPU同时处理多个进程
对于多核心CPU我们可以把系统看做是运行在准并行环境中的进程集合。在进程(程序)间快速反复切换叫做多任务处理。
进程和线程
进程是一个程序的实例。每个进程都有自己的虚拟地址空间和控制线程,线程是操作系统调度器(Schduler)分配处理器时间的基础单元。
创建进程的方法:
--1.系统初始化
--2.正在运行的进程执行进程的系统调用
--3.用户要求创建新进程
--4.启动批处理作业
//WINDOWS平台下创建进程的实例 (属上面的第2种情况) #include <iostream> #include <Windows.h> int main() { STARTUPINFO startupinfo = { 0 }; PROCESS_INFORMATION processInfoMation = { 0 }; BOOL bSuccess = CreateProcess(TEXT("C:\\Windows\\notepad.exe"), nullptr, nullptr, nullptr, false, NULL, nullptr, nullptr, &startupinfo, &processInfoMation ); if (bSuccess) { std::cout << "Process started." << std::endl << "Process ID:\t" << processInfoMation.dwProcessId << std::endl; } else { std::cout << "Cannot start Process." << std::endl; std::cout << "Process ERROR ID:\t" << processInfoMation.dwProcessId << std::endl; } return 0; } //利用c++11中thread库创建一个简单的线程测试 #include <iostream> #include <thread> using namespace std; void My_Function() { for (int _i = 0; _i < 10; _i++) { cout << "From : function() --" << _i << endl; } }
int main() { thread t = thread (My_Function); t.detach(); for (int _i = 0; _i < 10; _i++) cout << "From : main() --" << _i << endl; return 0; }
对于现代CPU我们可以吧系统看做是运行在准并行环境中的进程集合。在进程(程序)间快速反复切换叫做多任务处理。