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

邯郸网站制作网站设计行业资讯

邯郸网站制作,网站设计行业资讯,视频网站开发工具,注册二级建造师查询入口二值信号量 二值信号量的本质是一个队列长度为1的队列#xff0c;该队列就只有空和满两种情况#xff0c;这就是二值。 二值信号量通常用于互斥访问或任务同步#xff0c;与互斥信号量比较类似#xff0c;但是二值信号量有可能会导致优先级翻转的问题#xff0c;所以二值…二值信号量 二值信号量的本质是一个队列长度为1的队列该队列就只有空和满两种情况这就是二值。 二值信号量通常用于互斥访问或任务同步与互斥信号量比较类似但是二值信号量有可能会导致优先级翻转的问题所以二值信号量更适合用于同步。 SemaphoreHandle_t xSemaphoreCreateBinary( void );xSemaphoreTake( SemaphoreHandle_t xSemaphore,TickType_t xTicksToWait );xSemaphoreTakeFromISR(SemaphoreHandle_t xSemaphore,signed BaseType_t *pxHigherPriorityTaskWoken)xSemaphoreGive( SemaphoreHandle_t xSemaphore );xSemaphoreGiveFromISR(SemaphoreHandle_t xSemaphore,signed BaseType_t *pxHigherPriorityTaskWoken)void vSemaphoreDelete( SemaphoreHandle_t xSemaphore );重点在许多使用场景中使用直达任务通知要比使用二值信号量的速度更快内存效率更高。所以没有实例代码。 计数型信号量 计数型信号量相当于队列长度大于1的队列因此计数型信号量能够容纳多个资源这在计数型信号量被创建的时候确定的。 SemaphoreHandle_t xSemaphoreCreateCounting( UBaseType_t uxMaxCount,UBaseType_t uxInitialCount);UBaseType_t uxSemaphoreGetCount( SemaphoreHandle_t xSemaphore );其他接口与二值信号量的接口一致。重点在许多情况下任务通知可以提供计数信号量的轻量级替代方案。 互斥信号量互斥锁 互斥信号量其实就是一个拥有优先级继承的二值信号量在同步的应用中二值信号量最合适。互斥信号量适合那些需要互斥访问的应用中。 注意互斥信号量不能用于中断服务函数中原因如下 互斥信号量有任务优先级继承的机制但是中断不是任务没有任务优先级所以互斥信号量只能用于任务中。中断服务函数中不能因为要等待互斥信号量而设置阻塞时间进入阻塞态。 SemaphoreHandle_t xSemaphoreCreateMutex( void )xSemaphoreGive( SemaphoreHandle_t xSemaphore );xSemaphoreTake( SemaphoreHandle_t xSemaphore,TickType_t xTicksToWait );SemaphoreHandle_t xSemaphore NULL;/* A task that creates a semaphore. */ void vATask( void * pvParameters ) {/* Create the semaphore to guard a shared resource. As we are usingthe semaphore for mutual exclusion we create a mutex semaphorerather than a binary semaphore. */xSemaphore xSemaphoreCreateMutex(); }/* A task that uses the semaphore. */ void vAnotherTask( void * pvParameters ) {/* ... Do other things. */if( xSemaphore ! NULL ){/* See if we can obtain the semaphore. If the semaphore is notavailable wait 10 ticks to see if it becomes free. */if( xSemaphoreTake( xSemaphore, ( TickType_t ) 10 ) pdTRUE ){/* We were able to obtain the semaphore and can now access theshared resource. *//* ... *//* We have finished accessing the shared resource. Release thesemaphore. */xSemaphoreGive( xSemaphore );}else{/* We could not obtain the semaphore and can therefore not accessthe shared resource safely. */}} }递归互斥信号量递归互斥锁 xSemaphoreCreateMutex()用于创建非递归互斥锁。非递归互斥锁只能被一个任务 获取一次如果同一个任务想再次获取则会失败 因为当任务第一次释放互斥锁时互斥锁就一直 处于释放状态。 与非递归互斥锁相反递归互斥锁可以被同一个任务获取很多次 获取多少次就需要释放多少次 此时才会返回递归互斥锁。 SemaphoreHandle_t xSemaphoreCreateRecursiveMutex( void )xSemaphoreTakeRecursive( SemaphoreHandle_t xMutex,TickType_t xTicksToWait );xSemaphoreGiveRecursive( SemaphoreHandle_t xMutex )
http://www.w-s-a.com/news/651988/

相关文章:

  • 北京网站建设net2006厦门优化公司
  • 制作网页前为什么要建立站点菏泽百度网站建设
  • 做影视网站引流网页美工设计课程教案
  • 响应式网站开发流程图网站优化seo教程
  • 做汽车团购网站百度官网平台
  • 网站增加关键字建设旅游网站的功能定位
  • 怎么搭建源码网站义乌网络
  • 定远规划建设局网站wordpress云主机安装
  • 慈溪市网站开发软件开发文档国家标准
  • 本地佛山顺德网站设计公司的网站如何建设
  • 网站建设前十名网站建设 招标书
  • 手机网站标准百度搜索关键词排名优化推广
  • 中国空间站科幻作文1000字wordpress运行库
  • 徐州做网站的wordpress可视化编辑器排行
  • 官方网站英语上海公司注册核名查询
  • 东莞网站建设推广云南昆明最新消息
  • 上网站乱码网页设计与网站建设案例教程
  • 宣讲网站建设wordpress多媒体主题
  • 如何成立网站互联网开发是做什么的
  • 网站首页的尺寸做多大网页图片排版
  • 龙岩天宫山索道多少钱河南网站排名优化哪家好
  • 北京做网站设计程序员和网站开发
  • 个人 做自媒体 建网站图片制作成视频的手机软件
  • h5 建站网站 移动端重庆潼南网站建设价格
  • 商企在线营销型网站怎么做时光网站
  • 网站建设方案论文1500竞价托管哪家便宜
  • 使用cdn的网站宣武网站建设
  • 营销型网站怎么建设企业网站Wap在线生成
  • 网站建设服务费应该做到什么科目广州网页制作服务商
  • 网站显示500错误怎么解决方法店面设计模板