当前位置: 首页 > news >正文

Linux下的软件编程——多任务(线程)

线程

1.什么是线程

轻量级的进程,可实现多任务的并发

2.线程的创建

线程时由某个进程创建

进程创建线程时,会为其分配独立的8M栈区空间

线程和所在进程,以及进程中的其他线程,共用进程的堆区,数据区,文本区

3.线程的调度

宏观并行,微观串行

4.线程的消灭

(1)线程退出

(2)回收资源空间

5.进程和线程的区别

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

           资源消耗:进程资源开销大,每次创建都有0~4G的虚拟内存空间

           效率角度:由操作系统创建,创建时耗时比线程大,跨进程调度比跨线程调度慢

           通信方面:进程间不能直接通信,需要使用进程间通信机制(IPC机制)

           安全性角度:进程比线程安全性高,各进程间独立            

线程:线程时操作系统任务调度的最小单位

           资源消耗:资源消耗较小,只需要在所在进程当中为其开辟出8M的栈区空间     

           效率角度:由所在进程创建     

           通信方面:通信简单,可以使用线程共享的区域进行通信(比如全局变量)

           安全性角度:线程没有进程安全性好,一个线程异常可能影响同一个进程中的所有线程

6.线程相关的编程

(1)线程的创建:pthread_create () 

                               pthread_self():获取当前线程的ID号

int  pthread_create(pthread_t  *thread,const pthread _attr_t *attr,void *(*start_routine)(void *),void *arg)

        (1)功能:创建一个新的线程

        (2)参数:thread:保存线程ID的变量地址

                            attr:线程属性的对象地址        NULL:按照默认属性创建

                            start_routine:函数的指针:指向线程启动后要执行的任务(线程任务函数)

                            arg:为线程任务函数传递的参数

        (3)返回值:成功:0

                               失败:非0

(2)线程调度:有操作系统调度

(3)线程消亡:1.线程退出:pthread_exit();

                           2.线程回收:pthread_join();     

            

http://www.dtcms.com/a/333580.html

相关文章:

  • QT开发中如何加载第三方dll文件
  • C语言指针(五):回调函数与 qsort 的深层关联
  • 前端性能优化
  • JCTools 无锁并发计数器:ConcurrentAutoTable
  • obsidian ai/copilot 插件配置
  • epoll边缘模式收数据学习
  • 【100页PPT】数字化转型某著名企业集团信息化顶层规划方案(附下载方式)
  • 基于之前的Python附魔插件做出的一些改进
  • 3s岗位合集
  • 并行Builder-输出型流程编排的新思路
  • AI提高投放效率的核心策略
  • 【生产实践】内网YUM源中rpm包的替换与仓库升级实战
  • 应用侧华为云LoTDA设备接入平台
  • 2025二建成绩公布!各地合格标准汇总!
  • 通俗易懂:Vue3的ref()运行机理
  • Windows Server存储智能数据校验
  • AMQP协议介绍
  • 【进阶】Java技术栈八股文学习资料整理
  • 优化网络ROI:专线复用,上云出网一“线”牵!
  • 力扣top100(day04-04)--栈
  • 从“写代码”到“定义需求”:AI编程工具如何重构软件开发的核心流程?
  • 深度学习-卷积神经网络-ResNet 残差网络
  • 永磁同步电机控制 第二篇、电机的分类
  • 支持向量机的原理和案例解析
  • Sklearn 机器学习 手写数字识别 使用K近邻算法做分类
  • Android Studio
  • IO流-转换流
  • MySQL的分析查询语句(EXPLAIN):
  • stream流debug
  • 华硕主板怎样调整风扇转速