在创建线程之前先说明一下基本概念:
串行与并行:
串行(同步):模仿人类做事,做完一件事之后做下一件事(比如穿衣服上厕所)
并行(异步): 做一件事的时候,不用等上件事情做完,就做下一件事情(比如吃饭的时候同时还可以看视频玩手机)
线程与进程:
线程:CPU调度和分配的基本单位,基本不用系统资源,只拥有一点在运行时必不可少的资源(大约占用1M内存)
进程:应用程序的一次执行过程
线程与进程之间的关系:一个程序必须有一个进程,一个进程至少有一个线程,也可有多个线程。
多线程的好处与弊端:
多线程会降低代码的复杂度,将串行工作变成并行,但是如果使用不当,会降低效率,消耗性能。
举个例子:
一个单核CPU,在执行多线程时:
一个人在挖山洞,显然如果两个人从两头挖这样最快,而且耗时最低,但是现在只有一个人,如果采用多线程,就会出现先从左边挖两天,然后跑到右边挖两天,这样会非常浪费时间的,因为中间的路程也会消耗时间(线程之间的切换)
但是单核CPU如果遇上了IO流操作,采用多线程,就会提高性能,所以一定要使用适当