首先说一下总结性的语句:
1.进程是系统资源分配的基本单位
2.线程是系统执行调度的基本单位
系统分配资源包括:内存,网络带宽,硬盘,cpu等
进程相对于线程比较大,如果我们频繁创建进程,效率就会大大降低,所以在Java中我们都是以线程为重点.效率低是因为每次创建进程系统都会分配资源.而线程就不会,这里就出现了包含关系,线程包含于进程之中.也就是说在创建线程时系统就不再需要分配资源了,线程会直接拿系统为进程分配好的资源.
一个进程中至少包含一个线程,也可以包含多个线程.
同一个进程的线程共用同一份资源
线程不是越多越好,线程多了就会出现,一个任务,其他线程抢不到的现象,这也就浪费了线程.应该合理分配线程.
多个线程一般会相互影响,如果有一个线程出现崩溃,可能会导致其他线程出现问题,最终导致程序崩溃.
多个进程之间一般不会相互影响,其中一个进程崩溃了,不影响其他进程.
再说一下cpu核心,cpu有多少核心意味着理想情况下你可以同时打开几个应用.
最后总结一下:
1.进程是系统分配资源的基本单位,线程是系统调度的基本单位.
2.线程包含于进程,一个进程至少有一个线程,可以有多个线程
3.在Java中我们一般重点关注先线程,而不是进程
4.多个线程之间一般会相互影响,一个线程出问题可能会导致其他线程出问题
5.进程之间不会相互影响
6.同一个进程中的线程共用一套系统资源.