小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
通过问题看本质!!!
如果被问到线程和进程,你会怎么回答呢?
网络很多文章讲的都很详细,但是我们不可能面面俱全的说出来。不说背下来,就是让你照着说,你也要说不长的时间了。所以我们要有自己的总结,而且讲得要有思路有条理。因此我们可以从以下几点去说。
1、先要知道它们的概念,认识它们,才能更好的使用。
2、它们之间有什么关联。
3、优缺点,为什么要使用它们。
总结起来三点
- 它们是什么?
- 它们之间的关系?
- 优缺点?
概念
线程
- 线程是进程的基本执行单位,一个进程的所有任务都在线程中执行。
- 进程想要执行任务,必须要有线程。
- 程序启动时,会默认开启一条线程,这条线程就是主线程。
进程
- 系统中正在运行的一个应用程序。
- 一个进程就是一个app,每个进程都是相互独立的。
- 每个程序运行的内存空间时独立且受保护的。
线程和进程关系
公司和员工的关系,员工可以共享公司的资源
1、同一个进程的线程共享进程的地址空间和资源(IO、CPU、内存)。
公司和公司的关系,它们是相互独立的
2、进程和进程之间的地址空间是相互独立的。
3、多进程的健壮性比多线程强。
- 多进程:一个进程奔溃后,在保护模式下,不会对其他进程造成影响,因为它们是相互独立的。
- 多线程:一个线程奔溃后,会导致程序死掉。
优缺点
1、优点:
- 适当提高程序的执行效率、提高资源利用率
- 线程执行完任务就会销毁
2、缺点:
- 开启线程需要占用内存空间(512kb)
- 大量开启线程,会占用大量的内存空间,降低程序的性能
- 线程越多,CPU在调用线程的开销就越大,程序也会变得的复杂(线程通信,数据共享)
多线程原理
单核多线程的原理:并发操作。CPU在单位时间片里快速在各个线程中切换。
多核多线程的原理:并行操作。充分利用CPU的多核,在多个线程同步进行。