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

做公众号链接的网站网站免费制作

做公众号链接的网站,网站免费制作,intitle 网站建设,全国水利建设监管服务平台网站事件组概述 事件组的作用: 可以等待某一个事件发生可以等待若干个事件发生可以等待若干个事件中的某一个事件发生 同步点是事件组的另一个使用方式,它可以让多个任务进行阻塞等待,当全部事件完成后,再一起解除任务的阻塞。常常…

事件组概述

事件组的作用:

  • 可以等待某一个事件发生
  • 可以等待若干个事件发生
  • 可以等待若干个事件中的某一个事件发生

同步点是事件组的另一个使用方式,它可以让多个任务进行阻塞等待,当全部事件完成后,再一起解除任务的阻塞。常常用于合作关系的情况。

相关函数

创建事件组

函数声明如下:

EventGroupHandle_t xEventGroupCreate( void )

返回值:事件组的句柄

设置事件组

函数声明如下:

EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToSet )

xEventGroup:事件组的句柄,设置哪一个事件组

uxBitsToSet :设置哪一个事件,以bit传入,设置bit3就传入 (1<<3),设置多个可用 ‘ | ’实现

等待事件组

函数声明如下:

EventBits_t xEventGroupWaitBits( EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToWaitFor,const BaseType_t xClearOnExit,const BaseType_t xWaitForAllBits,TickType_t xTicksToWait )

xEventGroup:事件组的句柄,设置哪一个事件组

uxBitsToWaitFor:要等待的事件,以bit传入

xClearOnExit:当函数返回之前,是否清除这个事件。传入pdFALSE、pdTRUE

xWaitForAllBits:是否等待全部

  • 传入pdFALSE代表有一个事件发生即可解除阻塞
  • 传入pdTRUE代表必须全部事件发生才可解除阻塞

xTicksToWait :超时时间

同步点

函数声明如下:

EventBits_t xEventGroupSync( EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToSet,const EventBits_t uxBitsToWaitFor,TickType_t xTicksToWait )

xEventGroup:事件组的句柄,设置哪一个事件组

uxBitsToSet:设置自己做完了哪一个事件,以bit传入

uxBitsToWaitFor:要等待哪些事件完成,以bit传入,只有当全部等待的事件完成后才可退出阻塞

xTicksToWait :超时

uxBitsToWaitFor设置的事件都完成后,多个任务会同时从这个函数退出来,不再阻塞。退出函数之后,会自动清除uxBitsToWaitFor设置的事件的位

验证实验

现在有3个任务,任务1在做一件很长时间的事情,任务2也在做一个很长时间的事情,任务3在等待这两个任务中其中一个完成后,打印task finish字符串。

具体代码实现如下:

EventGroupHandle_t xEventHandle_Test;/* 事件组句柄 */
void TaskAFunction(void *param){int i=0;int j=0;while(1){/* 做一个很长时间的任务 */for(i=0;i<10000;i++){j++;}/* 设置事件0 */xEventGroupSetBits(xEventHandle_Test,1<<0);}
}void TaskBFunction(void *param){int i=0;int j=0;while(1){/* 做一个很长时间的任务 */for(i=0;i<20000;i++){j++;}/* 设置事件1 */xEventGroupSetBits(xEventHandle_Test,1<<1);}
}
void TaskCFunction(void *param){while(1){/* 等待事件组,pdFALSE代表等待的事件有一个发生即可解除阻塞 */xEventGroupWaitBits(xEventHandle_Test,(1<<0)|(1<<1),pdTRUE,pdFALSE,portMAX_DELAY);printf("task finish\r\n");}
}int main( void )
{TaskHandle_t xHandleTask1;TaskHandle_t xHandleTask2;TaskHandle_t xHandleTask3;prvSetupHardware();SerialPortInit();printf("UART TEST\r\n");/* 创建事件组 */xEventHandle_Test = xEventGroupCreate();xTaskCreate(TaskAFunction,"TaskA",100,(void*)NULL,1,&xHandleTask1);xTaskCreate(TaskBFunction,"TaskB",100,(void*)NULL,1,&xHandleTask2);xTaskCreate(TaskCFunction,"TaskC",100,(void*)NULL,1,&xHandleTask3);vTaskStartScheduler();return 0;
}
http://www.tj-hxxt.cn/news/33936.html

相关文章:

  • 聊城做手机网站网站代理公司
  • 驻马店做网站公司长治seo顾问
  • 扬州天达建设集团有限公司网站想做网络推广的公司
  • 网站开发公司哪里好今日头条重大消息
  • 装修公司营销网站模板合肥网络营销公司
  • 电子商务做网站武汉seo霸屏
  • 网站开发技术可以做什么工作瑞金网络推广
  • 英国T4学生签证 可以做网站吗seo排名优化教学
  • 琼海网站建设seo优化软件有哪些
  • 广东微信网站建设哪家专业网站建设平台有哪些
  • 市住房城乡建设部网站网络推广公司专业网络
  • 请人做网站后台密码站长平台官网
  • 专升本需要考些什么科目seo推广代运营
  • 做网站网页的软件是绿色的图标什么如何自己开发软件app
  • 服务器网络宁波seo优化
  • 国内简约网站设计欣赏bt种子bt天堂
  • 做新媒体应该关注什么网站怎么创建网站快捷方式到桌面
  • 青岛中企动力做网站怎么样谷歌广告推广
  • 网站做的好是不是影响就大app代理推广合作50元
  • 网站上线需要怎么做网站优化seo
  • 甘肃建投建设有限公司网站互联网平台推广怎么做
  • 西安网站优化效果网站制作网站推广
  • 洛阳 网站建设公司semantics
  • 网站建设中查看浏览过的历史记录百度
  • wordpress账号无法创建上海关键词优化公司哪家好
  • 一个专门做ppt的网站吗seo的形式有哪些
  • dnf做任务解制裁的网站关联词有哪些 全部
  • 网站建设技术咨询协议快速排名怎么做
  • html5能单独做网站吗网络优化工程师前景
  • 微信视频网站怎么做河北百度推广