您所在位置: 网站首页 / 文档列表 / 嵌入式开发 / 文档详情
嵌入式Linux高级编程--05posix_线程编程.pdf 立即下载
上传人:yy****24 上传时间:2024-09-04 格式:PDF 页数:16 大小:1MB 金币:18 举报 版权申诉
预览加载中,请您耐心等待几秒...

嵌入式Linux高级编程--05posix_线程编程.pdf

嵌入式Linux高级编程--05posix_线程编程.pdf

预览

免费试读已结束,剩余 6 页请下载文档后查看

18 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

嵌入式Linux高级编程主讲:成宝宗Linux线程编程主讲:成宝宗Linux线程概述进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。线程通常叫做轻型的进程。线程是在共享内存空间中并发执行的多道执行路径,他们共享一个进程的资源。因为线程和进程比起来很小,所以相对来说,线程花费更少的CPU资源。进程用户地址空间线程一线程二线程三图1进程与线程的关系创建线程#include<pthread.h>intpthread_create(pthread_t*thread,pthread_attr_t*attr,void*(*start_routine)(void*),void*arg)功能:创建线程。返回值:成功返回0。参数:thread:线程标识符(唯一性)attr:线程属性设置start_routine:线程函数起始地址arg:传递给start_routine的参数线程退出#include<pthread.h>voidpthread_exit(void*retval)功能:线程主动退出。参数:retval:pthread_exit调用者线程的返回值,可由其他函数和pthread_join来检测获取。#include<pthread.h>intpthread_cancel(pthread_tthread);功能:取消指定线程。返回值:成功返回0。等待线程#include<pthread.h>intpthread_join(pthread_tth,void**thread_return)功能:等待指定线程。返回值:成功返回0。参数:th:等待线程的标识符thread_return:用户定义指针,用来存储被等待线程的返回值。线程同步1,互斥量(mutex)2,信号量互斥量(mutex)mutex是一种简单的加锁的方法来控制对共享资源的访问。在同一时刻只能有一个线程掌握某个互斥上的锁,拥有上锁状态的线程能够对共享资源进行访问。若其他线程希望上锁一个已经被上了互斥锁的资源,则该线程挂起,直到上锁的线程释放互斥锁为止。互斥锁的操作主要包括以下几个步骤:互斥锁初始化:pthread_mutex_init互斥锁上锁:pthread_mutex_lock互斥锁解锁:pthread_mutex_unlock消除互斥锁:pthread_mutex_destroy互斥量(mutex)#include<pthread.h>intpthread_mutex_init(pthread_mutex_t*mutex,constpthread_mutexattr_t*mutexattr);功能:初始化锁。返回值:成功返回0。#include<pthread.h>intpthread_mutex_lock(pthread_mutex_t*mutex);功能:访问资源返回值:成功返回0。互斥量(mutex)#include<pthread.h>intpthread_mutex_unlock(pthread_mutex_t*mutex);功能:释放资源返回值:成功返回0。#include<pthread.h>intpthread_mutex_destroy(pthread_mutex_t*mutex);功能:取消毁锁返回值:成功返回0。信号量信号量依据取值开关(0与大于0)来控制运行。信号量相关函数包括:sem_initsem_waitsem_postintsem_destroy信号量#include<semaphore.h>intsem_init(sem_t*sem,intpshared,unsignedintvalue);功能:初始化信号量。返回值:成功返回0,错误返回-1。说明:sem:信号量pshared:为0时表示是当前进程局部信号量;非0表示其它进程可以共享该信号量。value:信号量初始值。信号量#include<semaphore.h>intsem_wait(sem_t*sem);功能:实现减1操作,当sem=0则阻塞。返回值:成功返回0,错误返回-1。#include<semaphore.h>intsem_post(sem_t*sem);功能:实现加1操作。返回值:成功返回0,错误返回-1。#include<sem
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

嵌入式Linux高级编程--05posix_线程编程

文档大小:1MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用