在程序运行中有两个概念容易被混淆,那就是进程和线程。我们平时打来的程序框都可以算是进程,而线程就是进程的助手,一般使用时是不会去查看的。为了帮助大家更好的理解它们的关系,下面我们就java线程和进程的联系与区别带来讲解,重点方法它们区别的比较上,一起来学习下吧。
一、联系
1.线程是进程的一部分,一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
2.资源分配给进程,同一进程的所有线程共享该进程的所有资源。
3.虚拟机分给线程,即真正在虚拟机上运行的是线程。
4.线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
二、区别
1.定义不同
进程
进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有一个自己的地址空间,至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。
线程
是进程中的一个实体,是被进程独立调度和分派的基本单位。 线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源(计数器、寄存器和栈),但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
2.调度不同
线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
3.并发性
不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
4.拥有资源不同
进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.
以上就是java线程和进程的关系,两者之间的联系相信大家都清楚了,在区别上我们重点拆分成四点进行分析,帮助大家彻底区分线程和进程的概念。