【Java易混淆知识点】什么是线程、进程?有什么区别?为什么要使用多线程?

1.什么是线程、进程?

(1)线程:是指程序在执行过程中,能够以执行程序代码的一个执行单元。在Java语言中由四种状态:运行、就绪、挂起、结束
(2)进程:操作系统中⼀个程序的执⾏周期称为⼀个进程。

进程是系统分配资源的最小单位,线程是系统调度的最小单位

2.线程与进程区别是什么?

进程是指一段正在被执行的程序,而线程是程序执行的最小单元,一个进程可以有多个线程,各个线程之间共享程序的内存空间(代码段,数据段和对空间)以及一些进程级的资源(例如打开的文件),但是各个线程拥有自己的栈空间。
一个进程内的线程之间是可以共享资源的。每个进程至少有一个线程存在,即主线程。

3.为什么要使用多线程?

在操作系统级别上,程序执行都是以进程为单位的,而在每个进程中,通常会由多个线程互不影响的并发执行,使用多线程的好处有:

  1. 使用多线程可以减少程序相应时间。在单线程中(单线程指的是程序执行过程中只有一个有效的操作序列,不同的操作之间有明确的先后顺序)的情况下,若某个操作很费时间,此时程序不会响应鼠标和键盘等的操作,使用多线程后,可以把这个耗时的线程分配到一个单独的线程中执行,从而使程序具备更好的交互性。
  2. 与进程相比,线程的创建和切换的开销更小。由于启动一个新的线程必须给这个线程分配独立的地址空间,建立许多数据结构来维持信息,而运行于同一进程的线程之间启动或切换的开销比进程小的多。同时多线程在数据共享方面效率很高,多个线程之间可以共享堆区和方法区。
  3. 在多CPU或多核计算机上使用多线程提高CPU的利用率。多CPU或多核计算机本身就具有执行多线程的能力,如果使用单个线程,将无法重复利用计算机资源,造成资源的巨大浪费。
  4. 便于程序的理解和维护。使用多线程简化了程序结构,一个非常复杂的进程可以分成多个线程来进行。
发布了62 篇原创文章 · 获赞 28 · 访问量 6067

猜你喜欢

转载自blog.csdn.net/Moo_Lavender/article/details/102955671