关于Java中进程和线程的区别

什么是进程?

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,竞争计算机系统资源的基本单位。

什么是线程?

线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。

一个程序由一个或多个进程组成,一个进程由一个或多个线程组成。

例如:

对于java程序来说,当在DOS命令窗口输入:java HelloWorld 回车之后,会先启动JVM,而JVM就是一个进程,JVM再启动一个主线程调用main方法。 同时再启动一个垃圾回收线程负责看护,回收垃圾,最起码,现在的java程序中至少有两个线程并发,一个是垃圾回收线程,一个是执行main方法的主线程。

进程和线程的区别

1.地址空间:

进程之间是独立的地址空间,但同一进程的线程共享本进程的地址空间。

2.资源占用

同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。

3.健壮性

一个进程崩溃后,在保护模式下不会对其他进程产生影响;

一个线程崩溃整个进程都死掉,所以多进程要比多线程健壮。

4.执行过程

进程可以独立执行,且每个独立的进程程有一个程序运行的入口、顺序执行序列和程序入口。

线程不能独立执行,必须存在应用程序中,由应用程序提供多个线程执行控制。线程是处理器调度的基本单位,但是进程不是。

5.并发和资源消耗

两者均可并发执行。

进程切换时,消耗的资源大,效率高。所以涉及到频繁的切换时,使用线程要好于进程。

如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章