线程详解(上)

一·线程基本概念

  1. 线程就是进程中的执行线路,即进程内部的控制序列,或者说是进程的子任务(进程就是正在运行的程序,它是一个资源单位)。
  2. 线程是轻量级的没有自己独立的内存资源,使用的是进程的代码段、数据段、bss段、堆(注意没有栈)、环境变量表、命令行参数、文件描述符、信号处理函数、工作目录、用户ID、组ID等资源。
  3. 线程拥有自己独立的栈,也就是有自己独立的局部变量。
  4. 一个进程可以同时拥有多个线程,即同时被系统调度的多条执行路线,但至少有一个主进程。

二·线程基本特点

  1. 线程是进程的实体,可以作为系统独立的调度和分派的基本单位。
  2. 线程有不同的状态,系统提供了多种线程控制的原语(控制方法),比如:创建线程、销毁线程。
  3. 线程不拥有自己的资源(唯一拥有的就是自己的栈空间),只拥有从属于进程的全部资源,所有有资源分配都是面向进程的。
  4. 一个进程中可以有多个线程同时执行,它们可以执行相同的代码,也可以执行不同代码。
  5. 同一进程内的线程都在同一个地址空间下活动(0~4G),相对于多进程多线程的系统开销小,任务切换快。
  6. 多进程协同工作时需要通信,而多线程间的数据交换不需要依赖类似IPC的特殊通信机制,简单而高效。
  7. 每个线程拥有自己独立的线程ID、寄存器信息、函数栈等。
  8. 线程之间也存在优先级。

注意:线程与进程的区别?

三·POSIX线程

  1. 早期的UNIX的操作系统中是没有线程的,而是各计算机厂商提供了自己私有的线程库,不易于移植。
  2. 在1995年左右,定义了统一的线程编程接口,POSIX线程,即pthread。
  3. phread包含一个头文件pthread.h,一个共享库 libpthread.so
  4. 功能:
    • 线程管理:创建/销毁、分离/联合、设置/获取属性
    • 线程同步(互斥):互斥量(锁),条件变量,信号量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值