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

做校园网站首页关键词排名优化

做校园网站,首页关键词排名优化,深圳市房地产信息网查询系统,开发网站公司都需要什么岗位人员一、概念 在多数情况下,互斥型信号量和二值型信号量非常相似,但是从功能上二值型信号量用于同步, 而互斥型信号量用于资源保护。 互斥型信号量和二值型信号量还有一个最大的区别,互斥型信号量可以有效解决优先级反转现 象。 …

一、概念
 

在多数情况下,互斥型信号量和二值型信号量非常相似,但是从功能上二值型信号量用于同步,
而互斥型信号量用于资源保护。
互斥型信号量和二值型信号量还有一个最大的区别,互斥型信号量可以有效解决优先级反转现
象。
优先级反转:
系统中有 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.hkea.cn/news/456509/

相关文章:

  • 动态网站建设教程宝鸡seo排名
  • 做外贸b2b免费网站优化推广网站排名
  • 丹徒网站建设价格香港服务器
  • 宿迁哪里有做网站开发的信息流广告案例
  • 电脑网页无法访问如何解决北京seo地址
  • 直销网站系统制作价格java培训机构
  • dw软件个人简历网站怎么做百度导航下载2022最新版官网
  • 成都官方网站建设泉州seo外包
  • 矿山建设网站天津网络推广seo
  • 国内优秀的响应式网站深圳专业seo外包
  • 重庆装修价格c盘优化大师
  • 银行网站 设计方案外包优化网站
  • 做网站是学什么专业软件外包企业排名
  • wordpress商城 中文站百度站长平台网址
  • 建手机网站的软件有哪些南宁百度seo价格
  • 做网站私活长沙网络营销公司
  • 网站建设公司 广告法被处罚沧州网络推广外包公司
  • 电商网站 开发成本惠州seo外包服务
  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤
  • 湘潭学校网站建设 z磐石网络网站关键词优化教程