我是一个计算机专业研0的学生卡蒙Camel🐫🐫🐫(刚保研)
记录每天学习过程(主要学习Java、python、人工智能),总结知识点(内容来自:自我总结+网上借鉴)
希望大家能一起发现问题和补充,也欢迎讨论👏👏👏
文章目录
基础知识
进程与线程
介绍
进程 (Process)
- 定义:进程是程序执行时的一个实例。是系统运行程序的基本单位,也是进行资源分配和调度的基本单位。
在计算机中,每个进程都有自己独立的内存空间,包括代码、数据和堆栈等,同时拥有一组系统资源,如文件描述符、信号、处理器状态等。
- 特点:
- 独立性:每个进程在执行过程中都是独立的,一个进程的崩溃不会影响其他进程。
- 资源分配:操作系统为每个进程分配独立的内存空间和资源,进程间相互隔离。
- 可调度性:操作系统可以对进程进行调度,分配处理器时间片,以实现多任务并发执行。
线程 (Thread)
- 定义:线程是进程内的一个执行单元,是操作系统能够进行运算调度的最小单位。一个进程可以包含多个线程,它们共享进程的堆和方法区资源。但每个线程有自己的程序计数器、虚拟机栈和本地方法栈。系统在产生一个线程,或是在各个线程之间做切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。
- 特点:
- 共享资源:同一进程内的线程共享进程的地址空间和系统资源,可以直接访问共享数据。
- 轻量级:相对于进程来说,线程的创建和切换开销较小,可以更高效地实现并发。
- 并发性:多个线程可以在同一进程内并发执行,提高程序的响应速度和资源利用率。
线程和进程关系
总结:线程是进程划分成的更小的运行单位。线程和进程最大的不同在于基本上各进程是独立的,而各线程则不一定,因为同一进程中的线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护;而进程正相反。