概念
1.1 并发
定义:两个或者更多任务(独立的活动)同时发生(进行): 一个程序同时执行多个独立的任务;
原因: 主要可以同时进行多个事情,提高性能。
1.2 进程
进程就是运行起来的可执行程序。
1.3 线程
每个进程(执行起来的可执行程序), 都有唯一的一个主线程;当执行可执行程序时, 产生一个进程后,这个主线程就随着这个进程默默启动起来了,主线程和进程唇齿相依。
线程: 用来执行代码的。线程可理解为一条代码的执行通路。
除了主线程之外,可以通过写代码来创建其他线程,其他线程走的是别的道路,甚至可以去不同的地方。
每创建一个新线程,就可以再同一时刻,多干一个不同的事(多走一条不同的代码执行路径)。
1.4 多进程并发
比如账号服务器一个进程,游戏服务器一个进程。服务器进程之间存在通信(消息队列,共享内存。 word启动后就是一个进程,ie浏览器启动后就是一个进程。
1.5 多线程并发
线程:轻量级的进程。每个进程有自己独立的运行路径,但一个进程中的所有线程共享地址空间(共享内存),全局变量、指针、全局内存、全局引用都可以在线程之间传递,所以多线程开销远远小于多进程;
共享内存带来的新问题,数据一致性问题;线程A, 线程B向一个内存写数据得控制先后顺序。
线程并不是越多越好,每个线程,都需要一个独立的堆栈空间(大约1M),线程之间的切换要保存很多中间状态,切换也会耗费本该属于程序运行的时间;
线程创建
#include<thread> //类标准库
#include<iostream>
using namespace std;
int main()
{
thread my_thread;
if(my_thread.joinable())
{
my_thread.join();//等待子线程
}
return 0;
}
本文介绍了并发编程的基础概念,包括并发、进程和线程的定义。进程是执行中的可执行程序,线程是执行代码的单元,主线程与进程相伴而生。多线程允许在同一进程中同时执行多个任务,通过共享内存实现通信,但也带来了一致性问题。多进程则是不同进程间的并发,如账号服务器和游戏服务器。示例展示了如何在C++中创建线程。文章探讨了线程创建的开销及线程数量的优化。
3516

被折叠的 条评论
为什么被折叠?



