linux——线程的概念

张开发
2026/4/11 22:22:40 15 分钟阅读

分享文章

linux——线程的概念
一、核心真理进程 独立大房子线程 房子里的住户一个房子里可以住很多住户多线程住户共享客厅 / 厨房全局数据各有自己的小房间私有栈二、官方定义1. 什么是线程线程是进程内部的最小执行单元一个进程里可以创建多个线程它们共享进程的内存、文件描述符、全局变量、资源各自独立跑自己的代码流2. 操作系统本质CPU 调度最小单位线程资源分配最小单位进程三、进程 VS 线程对比项进程线程资源隔离完全独立互不干扰共享同一个进程资源创建开销极大复制整个地址空间极小只建栈 PCB通信方式麻烦管道 / 共享内存 / 信号量直接读全局变量就通信崩溃影响一个崩不影响别的一个线程崩 → 整个进程全崩切换速度慢飞快人话总结开进程 重新盖一栋楼开线程 楼里多雇一个员工干活四、单线程 / 多线程 是什么1. 单线程程序你写的普通 C 语言程序整个进程里只有一条代码执行流从上往下顺序跑2. 多线程程序一个进程里同时有多条代码流并发跑一起用同一份全局数据各自做不同任务例子聊天软件一个线程收消息一个线程发消息一个线程弹窗服务器一个线程处理一个客户端连接五、线程共享什么独有什么✅ 所有线程共享大家都能改全局变量堆内存malloc/new文件描述符打开的文件、socket进程 ID、工作目录、权限信号处理方式✅ 每个线程独有自己私人栈空间局部变量、函数参数线程私有寄存器CPU 调度用线程 ID私有信号屏蔽字六、多线程优缺点优点创建、销毁、切换超快线程间通信极简直接读全局变量充分利用多核 CPU并发效率高资源共享节省内存缺点全局数据要加锁不然乱改→数据错乱一个线程崩溃 → 整个进程挂掉逻辑复杂容易死锁七、CPU 怎么执行多线程并发单核快速轮流切换线程肉眼看起来像同时跑并行多核多个线程真・同时在不同核心跑八、Linux 下线程特点Linux 内部线程本质是轻量级进程 LWPpthread 库POSIX 标准线程跨平台常用函数pthread_create创建pthread_join等待回收pthread_exit退出pthread_mutex互斥锁九、最经典一句总结进程是资源分配单位线程是调度执行单位多进程隔离安全多线程共享高效线程共享堆、全局区独有栈、局部变量十、安装线程man page 命令sudo apt-get install manpages-posix-dev查看指定线程的LWP号线程号和线程ID是有区别的线程号是给内核看的查看方式找到程序的进程IDps -Lf pid

更多文章