赞
踩
1.PCB属性私有
2.要有一定的私有上下文结构
3.每个线程都要有独立的栈结构
ps -aL
##1. Linux线程概念
###什么是线程
在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序 列”
一切进程至少都有一个执行线程
线程在进程内部运行,本质是在进程地址空间内运行
在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化
透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程 执行流
3.线程切换cache不需要太更新,但是进程切换,cache需要全部更新。
CPU中存在高速缓存cache
线程的优点
创建一个新线程的代价要比创建一个新进程小得多
与进程之间的切换相比,线程之间的切换需要操作系统做的工作要少很多
线程占用的资源要比进程少很多
能充分利用多处理器的可并行数量
在等待慢速I/O操作结束的同时,程序可执行其他的计算任务
计算密集型(CPU,加密,解密,算法等)应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现
I/O密集型(外设,访问磁盘,显示器,网络)应用,为了提高性能,将I/O操作重叠。线程可以同时等待不同的I/O操作。
- ls /lib64/libpthread.*
- /lib64/libpthread.a /lib64/libpthread.so /lib64/libpthread.so.0
/lib64/libpthread.so.0(用户级线程库)
任何Linux操作系统,都必须默认携带这个库(原生线程库)
OS只认线程,用户也只认线程。
Linux无法直接提供创建线程的系统调用接口!而只能提供创建轻量级进程的接口。
windows中为线程设计了专门的数据结构表示线程对象。TCB
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。