【Linux】线程详解

一、线程

就是轻量级的进程,也是用来实现多任务的

二、线程的创建

线程由某个进程创建,从属于某个进程

内存:由某个进程分配独立的栈区空间(默认8M)

与其他线程和所在的进程公用数据区、堆区、文本区

内核中存储线程控制块

三、进程和线程的区别

线程是CPU调度的最小单位

进程是操作系统资源分配的最小单位

线程就是轻量级的进程

3.资源消耗

进程资源消耗大,每次需要0-4G的虚拟内存空间

线程只需要所在进程分配8M的栈区空间

4.效率角度

线程的创建效率比进程高

线程任务切换的效率高

5.安全角度

多进程的安全性高,各个进程之间空间独立

6.通信角度

线程间通信方便,进程间不能直接共享

四、线程调度

宏观并行,微观串行

五、线程的消亡

1.线程回收

2.线程资源回收

相关推荐
想吃火锅100511 小时前
【leetcode】405.数字转换为十六进制数js
开发语言·javascript·ecmascript
专注VB编程开发20年12 小时前
AI 生成C# WinForm 窗体 = 目前就是垃圾
开发语言·人工智能·c#
cfm_291412 小时前
JVM GC垃圾回收初步了解
java·开发语言·jvm
~小先生~12 小时前
Python从入门到放弃(一)
开发语言·python
许彰午12 小时前
17_synchronized关键字深度解析
java·开发语言
z落落13 小时前
C# 泛型接口和泛型类+泛型约束
开发语言·c#
阿正的梦工坊13 小时前
【Rust】02-变量、不可变性与基础类型
开发语言·后端·rust
阿正的梦工坊13 小时前
【Rust】08-集合类型、字符串与迭代器入门
开发语言·rust·c#
FuckPatience13 小时前
C# 使用泛型协变将派生类类型替换为基类类型
开发语言·c#
张忠琳13 小时前
【Go 1.26.4】(Part 1) Go 1.26.4 超深度源码分析 — 总体架构与模块全景
开发语言·golang