线程

61 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第23天,点击查看活动详情

线程概述

线程相关概念

进程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活 动,是操作系统进行资源分配与调度的基本单位. 可以把进程简单的理解为正在操作系统中运行的一个程序.

线程

线程(thread)是进程的一个执行单元. 一个线程就是进程中一个单一顺序的控制流, 进程的一个执行分支

进程是线程的容器,一个进程至少有一个线程.一个进程中也可以有多个线程. 在操作系统中是以进程为单位分配资源,如虚拟存储空间,文件描 述符等. 每个线程都有各自的线程栈,自己的寄存器环境,自己的线程 本地存储.

主线程与子线程

JVM 启动时会创建一个主线程,该主线程负责执行 main 方法 . 主线程就是运行 main 方法的线程 .Java 中的线程不孤立的,线程之间存在一些联系. 如果在 A 线程中创建了 B 线程, 称 B 线程为 A 线程的子线程, 相应的 A 线程就是 B 线 程的父线程 .

串行,并发与并行

并发可以提高以事物的处理效率, 即一段时间内可以处理或者完 成更多的事情.。并行是一种更为严格,理想的并发 从硬件角度来说, 如果单核 CPU,一个处理器一次只能执行一个线 程的情况下,处理器可以使用时间片轮转技术 ,可以让 CPU 快速的在 各个线程之间进行切换, 对于用来来说,感觉是三个线程在同时执行. 如果是多核心CPU,可以为不同的线程分配不同的 CPU 内核.

1.2 线程的创建与启动

Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable).对 应的创建线程的两种方式: 定义 Thread 类的子类 定义一个 Runnable 接口的实现类 (使用较多,类是单继承) 这两种创建线程的方式没有本质的区别