个人学习笔记

参考作者

程序执行的最小单位,多个线程同时运行可以减少线程上下文切换的开销。多线程是开发高并发系统的基础(即允许在同一时间段执行多个任务),利用好多线程机制可以显著提高系统的并发能力和性能。

# 进程 & 线程

程序是含有指令和数据的文件,是静态的代码,被存储在磁盘或其他的数据存储设备中。进程是程序的一次执行过程,线程是进程划分成的更小的运行单位。

# 区别

进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。 系统运行一个程序即为一个进程的创建、运行以及消亡的过程。

** 线程是比进程更小的执行单位。** 一个进程在其执行的过程中可以产生多个线程,多个线程共享进程的堆和方法区内存资源,每个线程都有自己的程序计数器虚拟机栈本地方法栈由于线程共享进程的内存,因此系统产生一个线程或者在多个线程之间切换工作时的负担比进程小得多,线程也称为轻量级进程。

进程和线程最大的区别是,各进程是独立的,而各线程则不一定独立,因为同一进程中的多个线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护,进程则相反。

# 线程的状态

线程在运行的生命周期中的任何时刻只能是 6 种不同状态的其中一种。

  • 初始状态(NEW):线程已经构建,尚未启动。

  • 运行状态(RUNNABLE):包括就绪(READY)和运行中(RUNNING)两种状态,统称为运行状态。

  • 阻塞状态(BLOCKED):线程被锁阻塞。

  • 等待状态(WAITING):线程需要等待其他线程做出特定动作(通知或中断)。

  • 超时等待状态(TIME_WAITING):不同于等待状态,超时等待状态可以在指定的时间自行返回。

  • 终止状态(TERMINATED):当前线程已经执行完毕。

    但是也有菜鸟教程中对 Java 线程的说法:

# 检测

  1. 进程和线程的区别是什么? 10

    进程和线程最大的区别是,各进程是独立的,而各线程则不一定独立,因为同一进程中的多个线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护,进程则相反。

    8.4

  2. 为什么需要使用多线程?10

    线程是程序执行的最小单位,多个线程同时运行可以减少线程上下文切换的开销。多线程是开发高并发系统的基础(即允许在同一时间段执行多个任务),利用好多线程机制可以显著提高系统的并发能力和性能。

    8.4

更新于

请我喝[茶]~( ̄▽ ̄)~*

Jean 微信支付

微信支付

Jean 支付宝

支付宝

Jean 贝宝

贝宝