线程与进程的关系
有线程之前:
进程需要 分配资源 和 调度执行
有线程之后:
进程专注于 资源分配;
线程负责 调度执行;
例子:
假如 一个房间里有 100 道题 需要小明做:

多进程:

多线程:

不用额外申请内存,与前面资源共享,速度就更快了;
当线程数量太多的时候,线程就会相互京城 cpu资源(cpu核心是有限的)非但不会提高效率 反而会消耗资源;
多线程还有一个 重要问题;线程之间会'打架'(起冲突)
总结
1.进程是包含线程的;
2.每个线程,也是一个独立的执行流,可以执行一些代码,并且单独参与到 cpu 的调度中;
3.每个进程,有自己的资源,进程中的线程 共用 这一份资源(内存空间,文件描述符表)
进程是资源分配的基本单位,线程时调度执行的基本单位;
4.进程和进程之间,不会相互影响,如果同一个进程中的某个线程,抛出异常是可能会影响到其他线程,会把整个进程中的所有线程都异常终止
5.同一个进程中的线程之间,可能会互相干扰,引起线程安全问题;
6.线程也不是越多越好,够合适就行,线程太多,调度开销可能非常明显