共同点:
● 线程和进程都是可以完成多任务的
●线程和进程都占用了一定的内存资源
·
不同点:
● 进程是资源分配的单位
● 线程是资源调度的单位
● 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率
·
解释:
● 程序在获得内存资源后成为进程,相当于启动了QQ,多进程就相当于同一时刻登陆了多个QQ。
● 而真正在进程中执行代码的是线程,相当于在QQ中执行了某种功能,打开了对话窗口等等
·
关系:
● 一个程序至少有一个进程,一个进程中至少有一个线程
● 线程不能够独立执行,必须依存在进程中
·
代码实例:
● 在上述代码中,执行到最后会存在三个进程,而上面显示的红色箭头就是线程,进程只是拥有全部的资源,在进程中去具体运行这些代码的是线程
● 多进程会拷贝原有所有代码,占用多份内存资源,而多线程只共享一份资源
·
现实实例:
·· 一个正在工作的电视工厂流水线拥有组装电视的所有资源配件,此时这个流水线叫做进程
·· 工厂流水线必须要工作,招大量的工人去组装这些原件配件,而这些工人叫做线程
·· 一个工厂可以有多个流水线,每个流水线都配备各自的配件资源,叫做多进程
·· 每个流水线中,大量的工人将共同对这一批电视配件进行组装,叫做多线程