软件编程3-进程和线程2-函数传参、线程概要、函数接口

一、线程概要

1、线程是一个轻量级的进程

  • 线程本质就是一个进程
  • 线程和进程不完全一致,轻量指空间,进程空间和线程空间管理方法不同

2、进程和线程的区别

  • 线程本质是进程,线程是任务创建、调度、回收的过程
  • 进程空间:文本段 + 数据段 + 系统数据段
  • 线程空间:
    • 线程必须位于进程空间内部,没有进程,线程无法独立存在
    • 一个进程中的所有线程共享文本段+数据段+堆区,独享栈区
    • 线程独享的栈区默认为8M
    • 一个进程中的多个线程切换调度任务时,资源开销比较小
  • 进程和线程区别:
    • 线程是CPU任务调度的最小单元
    • 进程是操作系统资源分配的最小单元

3、多进程和多线程的优缺点

4、线程的调度

        与进程调度保持一致

        宏观并行,微观串行

5、线程的消亡

        线程结束需要回收线程空间,否则产生僵尸线程

二、线程的函数接口

        进程和线程对应的函数接口

1、pthread_create

  • 注意
    • 第二个参数,可以将线程设置为分离属性(线程结束时候会自动回收空间)
    • 第四个参数,可以实现对线程函数的传参

2、pthread_self

3、pthread_exit

4、pthread_join

  • 注意:
    • tid对应的线程只要不退出,pthread_join阻塞等待结束回收线程空间
    • pthread_join具备同步功能

5、示例

三、练习

题目:创建4个线程任务

+ 线程1间隔1s打印"采集线程正在执行"

+ 线程2间隔2s打印"存储线程正在执行"

+ 线程3间隔5s打印"显示线程正在执行"

+ 线程4间隔10s打印"日志线程正在执行"

1、代码实现

2、makefile内容

3、结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值