目录
并发、进程、线程
1、并发
两个或更多的任务同时发生:一个程序同时执行多个独立的任务
单核cpu:某一时刻只能执行一个任务,多任务时要进行多次“任务切换”(不是真正的并发--并发假象)
多核cpu:同一时刻可以执行多个任务(硬件并发)。
使用并发可以同时执行多个任务,提高性能
2、可执行程序
windows下后缀为.exe的文件
3、进程
可执行程序运行起来,就叫创建了一个进程。
4、线程
每个进程都有一个主线程,主线程是唯一的,一个进程中只能有一个主线程;
进程启动后主线程自动启动。
线程是代码执行的通路;
除了主线程,我们可以通过代码创建其他的线程,其他线程走其他的通路甚至是去不同的地方;
每创建一个线程,我们就可以在同一时刻执行多个任务;
5、多线程(并发)
线程并不是越多越好,每个线程都需要一个独立的堆栈空间(1M),线程之间的切换需要保存很多中间状态;
而且线程之间的切换会耗费本该属于程序运行的时间
多进程和多线程并发
1、多进程并发
多个可执行文件之间的并发
2、多线程并发(重点)
一个进程中创建了多个线程,一个进程中的线程共享地址空间(共享内存)
全局变量、指针、引用,都可以在线程间传递,使用多线程的开销远远小于多进程
3、总结
和进程相比、线程的优点:
(1)线程启动速度更快,更加轻量级
(2)系统资源开销更少,执行速度更快,比如共享内存这种通信方式比其他任何通信方式都要快
缺点:
(1)使用起来有一定难度,要小心处理数据一致性问题