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

广州设计网站全文wordpress主题

广州设计网站,全文wordpress主题,免费的云电脑,app模板大全互斥量(Mutex) 互斥量又称互斥信号量(本质也是一种信号量,不具备传递数据功能),是一种特殊的二值信号量,它和信号量不同的是,它支持互斥量所有权、递归访问以及防止优先级翻转的特性…

互斥量(Mutex)

互斥量又称互斥信号量(本质也是一种信号量,不具备传递数据功能),是一种特殊的二值信号量,它和信号量不同的是,它支持互斥量所有权、递归访问以及防止优先级翻转的特性。比如有两个任务,A在运行,B就运行不了。

实验:创建三个任务,从高到低设置优先级,在任务一和三中使用互斥量,观察执行顺序。

实现:在【STM32】FreeRTOS消息队列和信号量学习基础上进行修改

d4ea330caa814e4f92766c07264f9c4f.png

9c2930c618e342f5aee425657b9a7fc9.png

void MX_FREERTOS_Init(void) {/* USER CODE BEGIN Init *//* USER CODE END Init *//* Create the mutex(es) *//* definition and creation of Mutex01 */osMutexDef(Mutex01);Mutex01Handle = osMutexCreate(osMutex(Mutex01));/* USER CODE BEGIN RTOS_MUTEX *//* add mutexes, ... *//* USER CODE END RTOS_MUTEX *//* Create the semaphores(s) *//* USER CODE BEGIN RTOS_SEMAPHORES *//* add semaphores, ... *//* USER CODE END RTOS_SEMAPHORES *//* USER CODE BEGIN RTOS_TIMERS *//* start timers, add new ones, ... *//* USER CODE END RTOS_TIMERS *//* USER CODE BEGIN RTOS_QUEUES *//* add queues, ... *//* USER CODE END RTOS_QUEUES *//* Create the thread(s) *//* definition and creation of Task1 */osThreadDef(Task1, StartDefaultTask, osPriorityHigh, 0, 128);Task1Handle = osThreadCreate(osThread(Task1), NULL);/* definition and creation of Task2 */osThreadDef(Task2, StartTask02, osPriorityAboveNormal, 0, 128);Task2Handle = osThreadCreate(osThread(Task2), NULL);/* definition and creation of Task3 */osThreadDef(Task3, StartTask03, osPriorityNormal, 0, 128);Task3Handle = osThreadCreate(osThread(Task3), NULL);/* USER CODE BEGIN RTOS_THREADS *//* add threads, ... *//* USER CODE END RTOS_THREADS */}/* USER CODE BEGIN Header_StartDefaultTask */
/*** @brief  Function implementing the Task1 thread.* @param  argument: Not used* @retval None*/
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void const * argument)
{/* USER CODE BEGIN StartDefaultTask *//* Infinite loop */for(;;){osDelay(10);//堵塞if(xSemaphoreTake(Mutex01Handle,portMAX_DELAY)!=pdTRUE){printf("task1,进不去\r\n");}else{printf("task1,抢占进入\r\n");}xSemaphoreGive(Mutex01Handle);printf("task1,完成\r\n");}/* USER CODE END StartDefaultTask */
}/* USER CODE BEGIN Header_StartTask02 */
/**
* @brief Function implementing the Task2 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_StartTask02 */
void StartTask02(void const * argument)
{/* USER CODE BEGIN StartTask02 *//* Infinite loop */for(;;){osDelay(2);//堵塞printf("task2,运行\r\n");}/* USER CODE END StartTask02 */
}/* USER CODE BEGIN Header_StartTask03 */
/**
* @brief Function implementing the Task3 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_StartTask03 */
void StartTask03(void const * argument)
{/* USER CODE BEGIN StartTask03 *//* Infinite loop */for(;;){xSemaphoreTake(Mutex01Handle,0);printf("task3,进入\r\n");xSemaphoreGive(Mutex01Handle);printf("task3,完成\r\n");}/* USER CODE END StartTask03 */
}

 现象:

84ad3238b47b489ea48b64674e5df15d.png

最低优先级先执行,最高优先级其次执行,最后是中间优先级执行。

 

 

http://www.yayakq.cn/news/796265/

相关文章:

  • wordpress 网站访问认证页面做网站推广优化
  • 怎么样创建网站北京国互网网站建设公司
  • 建一个下载网站要什么cms系统北京建筑公司有哪些
  • 网站开发技术项目说明书wordpress 图片特效插件
  • jsp 网站开发环境阿里云虚拟主机建站教程
  • 湖州网站seo优化没有网站可以做淘宝客吗
  • 网站服务器买了后怎么做如何建立一个永久网站
  • 山东网站方案wordpress网站跳转nginx
  • 邢台网站建设03191688淘宝内部券网站建设
  • wordpress拖拽式建站主题网站主机托管
  • 郑州优化网站公司有哪些自己做qq代刷网站要钱吗
  • 网站运营与维护的方法wordpress压缩插件
  • 淘宝网站建设现在哪个电商平台比较好做
  • 哈尔滨优化网站方法求职简历免费模板
  • 网站建设黄页免费在线观看成都网络设计公司
  • 网站建设手机app做网站技术含量
  • 网站备案授权码wordpress主题xiu5.6
  • 中文网站模板大全页面模板资源
  • 做wish选品网站 数据网站世界足球排名最新
  • 政务服务网站建设资金一套vi设计大概多少钱
  • seo图片优化2023网站seo
  • 摄影公司网站做旧工艺品网站
  • 最佳经验网站网页的优化
  • 连接器天津有公司做吗兰州网站优化软件
  • 网站被挂马做js跳转wordpress la
  • 网站开发报价单明细域名检测查询
  • 打开网站 磁盘空间不足免费开店平台
  • 做一个跨境电商网站wordpress类似的前端
  • 北京网站建设比较好的公司网页设计代码图片大全高清
  • 网站模板修改器电商平台建设有哪些内容呢