一、并发基本概念和实现
1、概念
两个或者更多的任务(独立的活动)同时发生;一个程序同时执行多个任务。
2、分类
(1)单核:某一个时刻只能执行一个任务,由操作系统调度,每秒钟进行多次所谓的任务切换,这种切换要有时间开销。
(2)多核:在一块芯片上有多个CPU,可以同时执行多个任务。
3、作用
同时执行多个任务,提高性能。
4、可执行程序(磁盘下的某一个文件)
(1)windows下:扩展名为.exe的文件
(2)linux下:ls -la,rwxrwxrwx(x可执行权限)
二、进程的基本概念和综述
1、概念:
一个可执行程序的运行;
2、运行
(1)windows下:双击一个可以执行的的程序
(2)linux下:./文件名 eg: ./收费系统
三、线程的基本概念和综述
1、概念
用来执行代码的一条通路;
2、分类
(1)主线程:每个进程只有一个主线程;进程(可执行程序)运行起来,主线程自动运行;
(2)子线程:自己手动创建用来执行代码的的通路
3、特点
(1) 每个线程都有自己独立的堆栈空间;
(2)线程切换会消耗程序运行的时间,不宜太多,一般不超过300条;
(3)一个新线程代表一条新的通路;
(4)多线程开销远远小于多进程;
(5)线程的启动比进程速度快,更轻量级,但是要注意数据的一致性问题;
四、C++11新标准线程库
1、线程的创建
(1)一般方法不能跨平台:
windows: CreateThread()、_beginthread()、_beginthreadex();
linux:pthread_create();
(2)新标准创建方法,可以跨平台,可移植,减少代码的开发量;