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

山东网站建设负面消息处理电商图片

山东网站建设负面消息处理,电商图片,页面设计好看的网站,鞋材东莞网站建设一、递归锁 /* 创建一个递归锁#xff0c;返回它的句柄。 * 此函数内部会分配互斥量结构体 * 返回值: 返回句柄#xff0c;非NULL表示成功 */ SemaphoreHandle_t xSemaphoreCreateRecursiveMutex( void );/* 释放 */ BaseType_t xSemaphoreGiveRecursive( SemaphoreHandle_t…一、递归锁 /* 创建一个递归锁返回它的句柄。 * 此函数内部会分配互斥量结构体 * 返回值: 返回句柄非NULL表示成功 */ SemaphoreHandle_t xSemaphoreCreateRecursiveMutex( void );/* 释放 */ BaseType_t xSemaphoreGiveRecursive( SemaphoreHandle_t xSemaphore );/* 获得 */ BaseType_t xSemaphoreTakeRecursive(SemaphoreHandle_t xSemaphore,TickType_t xTicksToWait ); static void vTakeTask( void *pvParameters ) {const TickType_t xTicksToWait pdMS_TO_TICKS( 100UL ); BaseType_t xStatus;int i;/* 无限循环 */for( ;; ){ /* 获得递归锁: 上锁 */xStatus xSemaphoreTakeRecursive(xMutex, portMAX_DELAY);//上锁成功printf(Task1 take the Mutex in main loop %s\r\n, \(xStatus pdTRUE)? Success : Failed);/* 阻塞很长时间, 让另一个任务执行, * 看看它有无办法再次获得递归锁 */vTaskDelay(xTicksToWait);//任务一挂起任务二就绪运行for (i 0; i 10; i){/* 获得递归锁: 上锁 */xStatus xSemaphoreTakeRecursive(xMutex, portMAX_DELAY);printf(Task1 take the Mutex in sub loop %s, for time %d\r\n, \(xStatus pdTRUE)? Success : Failed, i);/* 释放递归锁 */xSemaphoreGiveRecursive(xMutex);}/* 释放递归锁 */xSemaphoreGiveRecursive(xMutex);} }static void vGiveAndTakeTask( void *pvParameters ) {const TickType_t xTicksToWait pdMS_TO_TICKS( 10UL ); BaseType_t xStatus;/* 尝试获得递归锁: 上锁 */xStatus xSemaphoreTakeRecursive(xMutex, 0);//任务一上锁了任务二上锁失败//0说明不会等上锁失败直接返回// xMutex xSemaphoreCreateRecursiveMutex( );同一把锁printf(Task2: at first, take the Mutex %s\r\n, \(xStatus pdTRUE)? Success : Failed);/* 如果失败则监守自盗: 开锁 */if (xStatus ! pdTRUE){/* 无法释放别人持有的锁 */xStatus xSemaphoreGiveRecursive(xMutex);//解锁别人创建的锁失败printf(Task2: give Mutex %s\r\n, \(xStatus pdTRUE)? Success : Failed);}printf(task2\r\n);/* 如果无法获得, 一直等待 */xStatus xSemaphoreTakeRecursive(xMutex, portMAX_DELAY);//任务二一直堵在这下不去了//xStatus xSemaphoreTakeRecursive(xMutex, 0);//改成0就能运行下去printf(Task2: and then, take the Mutex %s\r\n, \(xStatus pdTRUE)? Success : Failed);/* 无限循环 */for( ;; ){ /* 什么都不做 */vTaskDelay(xTicksToWait);} } main函数 /* 递归锁句柄 */ SemaphoreHandle_t xMutex;int main( void ) {prvSetupHardware();/* 创建递归锁 */xMutex xSemaphoreCreateRecursiveMutex( );if( xMutex ! NULL ){/* 创建2个任务: 一个上锁, 另一个自己监守自盗(开别人的锁自己用)*/xTaskCreate( vTakeTask, Task1, 1000, NULL, 2, NULL );xTaskCreate( vGiveAndTakeTask, Task2, 1000, NULL, 1, NULL );/* 启动调度器 */vTaskStartScheduler();}else{/* 无法创建递归锁 */}/* 如果程序运行到了这里就表示出错了, 一般是内存不足 */return 0; }A任务1优先级最高先运行获得递归锁 B任务1阻塞让任务2得以运行 C任务2运行看看能否获得别人持有的递归锁不能 D任务2故意执行give操作看看能否释放别人持有的递归锁不能 E任务2等待递归锁 F任务1阻塞时间到后继续运行使用循环多次获得、释放递归锁递归锁在代码上实现了谁持有递归锁必须由谁释放。
http://www.pierceye.com/news/787252/

相关文章:

  • 虚拟服务器怎样做网站广州 骏域网站建设专家
  • 谁有做任务网站色多多导入百媚导航
  • 做网站怎么加视频素材网免费
  • 想做棋牌网站怎么做做电商的进货网站
  • 做微信小程序和做网站南昌网站备案
  • 好的摄影网站推荐抖音点赞自助网站
  • 能够做代理的网站有哪些问题朝阳区住房和城乡建设部网站
  • 网站建设与管理考察报告中国农业建设信息网站
  • 张家界做网站中天建设集团有限公司怎么样
  • 广州网站百度排名推广聊天代理分销系统
  • 全球采购网站有哪些网站平台
  • wordpress怎么做商城网站软件工程师证书含金量
  • 锡林浩特建设局网站推广方法有哪几种
  • 汉南城乡建设局网站活动页面设计
  • 滕州网站搜索引擎优化新浪企业邮箱
  • 涿州网站建设珠海网站制作计划
  • 摄影网站设计思想wordpress 同步插件
  • 手机网站不支持下载的视频怎么下载重庆哪里可以做网站的
  • 网站设计深圳联系电话?长沙市房产交易中心官网
  • 泉州建站费用广州建网站费用
  • 网站建设论证方案保定企业网站建设
  • 郑州建站软件登建设厅锁子的是哪个网站
  • 福州建设厅官方网站巨省网站
  • 网站建设服务专业html网页制作公司
  • 企业网站源码怎么获取秦皇岛黄金海岸游玩攻略
  • 网站模板建设报价上海移动官网网站建设
  • 厦门建网站费用一览表网站建设与管理ppt模板下载
  • 做赌场网站犯法么网站开发培训成都
  • 网站建设系统怎么样企业策划是做什么的
  • 做网站要不要钱网站如何做触屏滑动