什么是多线程?看别人写的有的云里雾绕的,本身定义是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。就好比我们在玩电脑的时候,左手操作键盘,右手忙活着,一会点鼠标,一会抽烟,一会喝可乐,右手就好比我们电脑的cpu,点鼠标,烟,可乐就是我们的电脑软件,多线程技术就是同时运行多个软件应用的技术,而且它需要硬件的支持。
涉及到两个概念并行与并发
并行:在同一时刻,有多个指令在多个CPU上同时执行。
就跟厨房做饭是一样的,三个厨师在同时做各自负责的菜并发: 在同一时刻,有多个指令在单个CPU上交替执行
还是厨房,就剩一个厨师了,他自己在忙活,一会做西红柿炒番茄,一会做青椒肉丝,一会做海参炒饭,多个客户的菜由他自己去做
进程和线程
何为进程
进程:是正在运行的程序
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位
动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的
并发性:任何进程都可以同其他进程一起并发执行
打开我们的任务管理器 显示的每一个任务就是一个进程
那什么又是线程呢?
线程:是进程中的单个顺序控制流,是一条执行路径
单线程:一个进程如果只有一条执行路径,则称为单线程程序 我们写的小demo,hello world 输出之后就没得了
多线程:一个进程如果有多条执行路径,则称为多线程程序