如何理解进程和线程呢?
首先说下彼此的依附关系。线程因进程生而生,因线程亡而亡。进程就是包工头,线程就是工人。
其次说程序执行是cpu会给分配个进程,比如启动word,迅雷等,在window的任务管理器中进程管理就会看到相对应程序的进程。进程是cpu分配资源的基本单位。
再次说下线程,当cpu给包工头分配资源后,包工头不干活,但是会给手下的工人(线程)分配活。比如建造个房屋,如果只用一个工人,会消耗很多时间才能完成。但是使用很多工人,那么会减少工作时间。进程会给进程手下的线程分配资源。比如迅雷下来大型游戏,迅雷启动是一个进程,但是可以在里面同时下载非常多的东西,这就是迅雷开启多线程模式。
第四,进程必须有一个线程,没够工人的包工头不是好的程序员啊。
比如,当我们启动java编译器是,输入编译命令javac,会在进程中生成线程,可能转眼即逝。当执行java时,同样会生成线程的。
多核cpu时代,必然导致多线程的高速发展与崛起。