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

贵州网站备案查询游戏网站建设方案百度文库

贵州网站备案查询,游戏网站建设方案百度文库,网站建设哪家信誉好,手机网站与微信结合一、概念 在多数情况下#xff0c;互斥型信号量和二值型信号量非常相似#xff0c;但是从功能上二值型信号量用于同步#xff0c; 而互斥型信号量用于资源保护。 互斥型信号量和二值型信号量还有一个最大的区别#xff0c;互斥型信号量可以有效解决优先级反转现 象。 …一、概念   在多数情况下互斥型信号量和二值型信号量非常相似但是从功能上二值型信号量用于同步 而互斥型信号量用于资源保护。 互斥型信号量和二值型信号量还有一个最大的区别互斥型信号量可以有效解决优先级反转现 象。 优先级反转 系统中有 3 个不同优先级的任务 H/M/L 最高优先级任务 H 和最低优先级任务 L 通过 信号量机制共享资源。目前任务L 占有资源锁定了信号量 Task H 运行后将被阻塞直到 Task L释放信号量后 Task H 才能够退出阻塞状态继续运行。但是 Task H 在等待 Task L 释放信号量的过程中中等优先级任务M 抢占了任务 L 从而延迟了信号量的释放时间导致 Task H 阻塞了更长时 间这种现象称为优先级倒置或反转。 优先级继承当一个互斥信号量正在被一个低优先级的任务持有时 如果此时有个高优先级的任 务也尝试获取这个互斥信号量那么这个高优先级的任务就会被阻塞。 不过这个高优先级的任务 会将低优先级任务的优先级提升到与自己相同的优先级。 优先级继承并不能完全的消除优先级翻转的问题它只是尽可能的降低优先级翻转带来的影响。 二、没有使用互斥量的时候 配置中、高、低三个优先级    osThreadDef(TaskH, StartTaskH, osPriorityAboveNormal, 0, 128);TaskHHandle osThreadCreate(osThread(TaskH), NULL);osThreadDef(TaskM, StartTaskM, osPriorityNormal, 0, 128);TaskMHandle osThreadCreate(osThread(TaskM), NULL);osThreadDef(TaskL, StartTaskL, osPriorityBelowNormal, 0, 128);TaskLHandle osThreadCreate(osThread(TaskL), NULL);void StartTaskH(void const * argument) {for(;;){xSemaphoreTake(myBinarySemHandle,portMAX_DELAY);printf(TaskH:我开始进入厕所发功中。。\r\n);HAL_Delay(1000);printf(TaskH:我上完厕所了真舒服。。。\r\n);xSemaphoreGive(myBinarySemHandle);osDelay(1000);} }void StartTaskM(void const * argument) {for(;;){printf(TaskM:我就是为了占用资源带女朋友兜风\r\n);osDelay(1000);} }void StartTaskL(void const * argument) {for(;;){xSemaphoreTake(myBinarySemHandle,portMAX_DELAY);printf(TaskL:我开始进入厕所发功中。。\r\n);HAL_Delay(3000);printf(TaskL:我上完厕所了真舒服。。。\r\n);xSemaphoreGive(myBinarySemHandle);osDelay(1000);} }互斥量实验接上半部分 首先删除二值信号量 创建互斥量 void MX_FREERTOS_Init(void) {osMutexDef(myMutex);myMutexHandle osMutexCreate(osMutex(myMutex));osThreadDef(TaskH, StartTaskH, osPriorityAboveNormal, 0, 128);TaskHHandle osThreadCreate(osThread(TaskH), NULL);osThreadDef(TaskM, StartTaskM, osPriorityNormal, 0, 128);TaskMHandle osThreadCreate(osThread(TaskM), NULL);osThreadDef(TaskL, StartTaskL, osPriorityBelowNormal, 0, 128);TaskLHandle osThreadCreate(osThread(TaskL), NULL);}void StartTaskH(void const * argument) {for(;;){xSemaphoreTake(myMutexHandle,portMAX_DELAY);//句柄变为myMutexHandleprintf(TaskH:我开始进入厕所发功中。。\r\n);HAL_Delay(1000);printf(TaskH:我上完厕所了真舒服。。。\r\n);xSemaphoreGive(myMutexHandle);osDelay(1000);}}void StartTaskM(void const * argument) {for(;;){printf(TaskM:我就是为了占用资源带女朋友兜风\r\n);osDelay(1000);}}void StartTaskL(void const * argument) {for(;;){xSemaphoreTake(myMutexHandle,portMAX_DELAY);printf(TaskL:我开始进入厕所发功中。。\r\n);HAL_Delay(3000);printf(TaskL:我上完厕所了真舒服。。。\r\n);xSemaphoreGive(myMutexHandle);osDelay(1000);}} 运行结果 通过引入互斥量可以实现资源的保护功能。
http://www.w-s-a.com/news/556077/

相关文章:

  • xampp安装网站模板海南一家天涯社区
  • 网站建设 管理系统开发仿租号网站源码网站开发
  • 怎么自己弄网站免费网站设计用什么软件
  • 网站分几种access做网站数据方法
  • 网站默认图片s001网站建设公司
  • 淘宝的电子商务网站的建设东莞哪里有网站制作公司
  • 西安网站制作怎么联系wordpress登陆界面打开慢
  • 高端工作网站网站推广seo代理
  • 一般找素材都是做哪几个网站呢推广引流工具
  • 必须做网站等级保护html网页设计题库
  • 移动端网站开发 float手机在线建网站
  • 教育网站模板下载做汽车网站开题报告的意义
  • 网站首页做后台链接昌平网站制作
  • 营销型门户网站建设浏览器下载免费大全
  • 快三网站开发推广普通话手抄报内容50字
  • 沈阳专业做网站开发公司asp网站搭建教程
  • 网站建设代码福州小程序开发平台
  • 了解做房产广告的网站手机版官方网站的建设
  • 如何与别的网站做友情链接做网站排名大概要多少钱
  • 东莞市锂电池网站建设HTML5怎么做自适应网站
  • 江苏城乡建设学校网站群晖建立wordpress
  • wordpress导入网站模板seo自学网官网
  • 购物网站服务器带宽北京网站开发周期
  • 同性做视频网站网站怎么添加栏目
  • 新余网站设计seo自学网站
  • 新乡个人网站建设价格wordpress数据插件
  • 你是网站设计有限公司的项目经理网站推广的重要性
  • 网站定制开发怎么写泸州设计公司有哪些
  • 上海网站建设zj kt迅速编程做网站
  • 郑州服装 网站建设网站栏目合理性