进程和线程的区别

  1. 进程时系统运行程序的基本单位。
  • 在Java中,当我们启动main函数,其实就是启动了一个JVM的进程,而main函数所在的线程就是这个进程中的一个线程,也称主线程。
  1. 线程是进程中的一个执行单元
  • 一个进程可以包含多个线程。
  • 这些线程共享进程的内存空间和系统资源。
  • 线程是操作系统调度的最小单位,它负责执行进程中的任务。
  • 但是线程的并发执行也可能导致一些问题,如死锁等
  • (多个线程共享进程的堆和JDK1.8之后的元空间)资源,但是每个线程有自己的程序计数器、虚拟机栈和本地方法栈)。
  1. 总结:
  • 线程是进程划分成更小的运行单位,
  • 一个进程在其执行的过程可以产生多个线程。
  • 线程和进程最大不同在于
    • 各进程是独立的,而各线程则不一定,因为同一进程中的线程极有可能会相互影响
    • 线程执行开销小,但不利于资源的管理和保护 而进程正相反。

源代码(.java) (->编译为) 字节码(.class)

  • 线程独占:每个线程都会有它独立的空间,(虚拟机栈、本地方法栈、程序计数器)
  • 线程共享:所有线程都能访问这块内存数据,随虚拟机或者GC创建和销毁。
posted @ 2025-05-16 19:41  kuki'  阅读(12)  评论(0)    收藏  举报