《线程篇》线程是什么
什么是线程?
参考链接:https://blog.csdn.net/weixin_51182368/article/details/125799573
参考链接:https://www.cnblogs.com/qianqiannian/p/7010909.html
参考链接:https://www.cnblogs.com/yrm1160029237/p/10207571.html
并发与并行
最初的程序是由上至下依次执行,现在想要一个程序一边唱歌一边跳舞,如何设计?
由此引入“并发和并行”的概念
并发:多个事件同一时间段内发生。(伪同时)
并行:多个事件同一时刻发生。(真同时)
所以,对于一边唱歌一边跳舞,就有并发或并行两种方式。
进程与线程
进程,进程是分配资源的最小单位。一个进程由一个或多个线程组成。
线程:线程是程序执行的最小单位。同进程中不同线程共享资源。
一个程序可以运行多个进程,而进程是程序的一次执行过程。这句话的个人理解:以英雄联盟为例,当你启动客户端进入游戏时,使用任务管理器,找到英雄联盟的进程,英雄联盟的进程会有多个,每个进程占独立的内存和cpu,这个就是进程的概念。即一个程序(英雄联盟)可以启多个进程,每个进程间资源独立。也就是说进程是程序的一次执行过程。
同步和互斥
同步,是指进程(或线程)按照顺序依次执行。
互斥,是指对某一资源同时只允许一个进程对它访问,具有唯一性和排它性。