并发、进程、线程的基本概念
并发
概念:两个或者更多的任务同时发生(进行);一个程序同时执行多个独立的任务
背景:对于以往的单核计算机,同一时刻CPU只能执行一个任务,由操作系统调度,实现多个任务之间的切换,事项一种假象的“并发”,由于切换过程中需要保存各个人物的状态,所以会产生额外的时间开销
随着时代的发展,目前产生了多核计算机(双核,四核等等),能够真正意义上实现并发。
原因:并行可以提高程序的效率
可执行程序(文件)
硬盘上的一个文件,windows下的.exe文件
进程
可执行文件运行起来,就是创建了一个进程,也就是说,进程就是运行起来的程序
线程
概念
线程就是一条代码的执行通路
主线程
1.每个进程都有且仅有一个主线程
2.执行一个可执行程序,产生一个进程后,主线程也随之自动产生
3.程序执行中,是主线程在执行main()函数,两者互相依存,main()函数结束,主线程也随之结束
其他线程(自己创建)
1.可以通过自己编写程序创建新的线程(但不是主线程)
2.每创建一个新线程,就可以在同一时刻,多执行一件事(代码)
3.每创建一个新线程,就会需要一个独立的堆栈空间(1M),并且线程之间的切换需要保存许多中间状态,会增加时耗,所以线程并不是越多越好
(建议不超过200-300个,以实际情况为准)
并发实现办法
实现办法:
1.多进程实现并行(开多个程序)
2.多线程实现并行(在一个程序中通过代码实现)
多进程实现并行(了解)
进程之间的通信
同一电脑上:管道,文件,消息队列,共享内容等
不同电脑上:socket通信技术
多线程实现并行
更像是轻量级的进程,开销要小于多进程
优点在于:
1.每个进程有自己独立的运行路径
2.进程中的各个线程共享地址空间
3.全局变量,指针,引用都可以在线程之间传递
缺点在于:
要注意数据的一致性问题(不同线程同时访问统一空间的矛盾)
本文深入解析了并发、进程和线程的基本概念,探讨了它们在多核计算机时代的应用,以及如何通过多进程和多线程实现并行计算,提高程序效率。同时,文章还详细介绍了可执行程序、进程、线程之间的关系,以及线程创建的注意事项。
590

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



