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

有什么网站是python做的建设购物网站的意义

有什么网站是python做的,建设购物网站的意义,天津网站建设技术,网站建设类公司排名文章目录 前言一、什么是信号量二、信号量种类和对比三、信号量和队列的区别四、信号量相关的函数1.创建函数2.删除函数3.获取和释放信号量函数 总结 前言 本篇文章正式带大家开始学习什么是信号量#xff0c;并且掌握信号量函数的基本使用方法#xff0c;并且将和队列进行一… 文章目录 前言一、什么是信号量二、信号量种类和对比三、信号量和队列的区别四、信号量相关的函数1.创建函数2.删除函数3.获取和释放信号量函数 总结 前言 本篇文章正式带大家开始学习什么是信号量并且掌握信号量函数的基本使用方法并且将和队列进行一个对比。 一、什么是信号量 FreeRTOS 中的信号量是一种用于任务间同步和互斥的机制。它允许任务在临界区保护资源的访问、线程间通信以及任务之间的同步操作。信号量可以用来保护共享资源限制对资源的并发访问以及进行任务间的事件通知。 二、信号量种类和对比 FreeRTOS 提供了两种类型的信号量二值信号量Binary Semaphore和计数型信号量Counting Semaphore。 二值信号量Binary Semaphore 二值信号量是最简单的一种信号量它只能有两个状态0 和 1。它常用于互斥访问共享资源的情况如保护共享数据结构、保证一次只有一个任务执行临界区等。任务可以通过获取或释放二值信号量来请求或释放对共享资源的访问。 创建二值信号量使用 xSemaphoreCreateBinary 函数并通过 xSemaphoreGive 和 xSemaphoreTake 函数来释放和获取信号量。 计数型信号量Counting Semaphore 计数型信号量可以有多个状态值允许多个任务同时访问共享资源可以用于控制资源的可用性。计数型信号量常用于限制任务的并发执行数量或者用于任务间的生产者-消费者模型等场景。 创建计数型信号量使用 xSemaphoreCreateCounting 函数并通过 xSemaphoreGive 和 xSemaphoreTake 函数来增加和减少信号量的计数值。 在使用信号量时任务通过获取信号量来尝试占用资源并在未能获取时阻塞等待。一旦资源可用或条件满足任务释放信号量让其他任务可以获取资源或继续执行。这样可以确保对共享资源的安全性和正确性。 需要注意的是使用信号量时要小心处理同步和互斥问题以避免竞态条件和死锁。此外信号量的使用应该遵循良好的软件设计原则以避免过度使用和滥用信号量。 二种信号量的对比 1.功能 二值信号量Binary Semaphore只有两个状态0 和 1。主要用于互斥访问共享资源的情况保护共享数据结构限制对资源的并发访问。一般用于排它性操作尽量保持资源独占一个任务操作。 计数型信号量Counting Semaphore可以有多个状态值用于控制资源的可用性。可用于限制并发执行数量、任务间的生产者-消费者模型等场景。 2.创建和初始化 二值信号量可以使用 xSemaphoreCreateBinary 函数创建并使用 xSemaphoreGive 进行初始化调用 xSemaphoreTake 来获取信号量。 计数型信号量可以使用 xSemaphoreCreateCounting 函数创建并使用 xSemaphoreGive 进行初始化调用 xSemaphoreTake 来获取信号量。 3.值的范围 二值信号量具有两个状态0 和 1。只能通过 xSemaphoreGive 和 xSemaphoreTake 将其值从 0 切换到 1 或者从 1 切换到 0。 计数型信号量具有更大的范围可以从 0 到一个设定的最大数值之间进行计数。 4.使用场景 二值信号量适用于互斥访问共享资源的场景例如保护共享数据结构、保证一次只有一个任务执行临界区等。 计数型信号量适用于控制并发执行数量的场景或者用于任务间的生产者-消费者模型等 三、信号量和队列的区别 1.功能 信号量信号量是一种用于任务间同步和互斥的机制。它可以用于保护共享资源、限制并发访问、控制任务的执行顺序等。信号量具有两种类型二值信号量和计数型信号量。 队列队列是一种用于任务间传递数据的机制。它允许任务按照先进先出FIFO的顺序共享数据。任务可以将数据发送到队列并从队列接收数据。队列的长度限制了可以在其中排队的数据项的数量。 2.数据传输方式 信号量信号量一般用于同步和互斥不直接传输数据。通过获取和释放信号量来控制任务对资源的访问。二值信号量和计数型信号量的获取和释放操作可以用来表示任务的事件和计数。 队列队列用于任务间传递数据。任务通过发送和接收操作将数据项从一个任务传递到另一个任务。发送操作将数据项复制到队列中接收操作将数据项从队列中复制到接收任务的缓冲区中。 3.数据复制 信号量信号量在任务间的数据共享过程中通常不涉及数据复制。它们通常用于任务间对资源的访问控制而不是实际的数据传输。二值信号量和计数型信号量是通过操作信号量的计数值来控制任务的行为。 队列队列在任务间传递数据时涉及数据的复制。发送任务向队列发送数据项时数据项的副本将存储在队列中。接收任务从队列接收数据项时队列将数据项的副本复制到接收任务的缓冲区中。 4.用途 信号量信号量在需要任务进行同步和互斥的场景下非常有用。例如保护共享资源、控制并发访问、任务的事件通知等。 队列队列在需要任务间传递数据的场景下非常有用。例如实现生产者-消费者模型、任务间的消息传递、任务间的数据通信等。 综上所述信号量主要用于同步和互斥控制任务对资源的访问。它们不直接传输数据而是控制任务的行为。队列则用于任务间传递数据按照先进先出的顺序共享数据项。选择使用信号量还是队列取决于需求如任务间的数据传输、共享资源的访问控制以及任务的同步需求。 四、信号量相关的函数 1.创建函数 创建二值信号量函数 xSemaphoreCreateBinary 函数原型 SemaphoreHandle_t xSemaphoreCreateBinary( void ); 参数无 返回值SemaphoreHandle_t一个二值信号量的句柄。 创建计数信号量函数 xSemaphoreCreateCounting 函数原型 SemaphoreHandle_t xSemaphoreCreateCounting( UBaseType_t uxMaxCount, UBaseType_t uxInitialCount ); 参数 uxMaxCount信号量的最大计数值即最多可以计数到多少。 uxInitialCount信号量的初始计数值通常为 0。 返回值SemaphoreHandle_t一个计数型信号量的句柄。 2.删除函数 void vSemaphoreDelete( SemaphoreHandle_t xSemaphore ); 参数 xSemaphore要删除的信号量的句柄。 要注意的是删除一个信号量前请确保没有任务正在等待该信号量否则可能导致未定义的行为。在删除信号量之前可以使用 uxSemaphoreGetCount 函数来获取当前信号量的计数值以确保没有任务在等待。 3.获取和释放信号量函数 获取信号量函数 xSemaphoreGive 函数原型 BaseType_t xSemaphoreGive( SemaphoreHandle_t xSemaphore ); 参数 xSemaphore信号量的句柄。 返回值如果成功释放信号量则返回 pdPASS1否则返回 pdFAIL0。 中断中释放信号量函数 xSemaphoreGiveFromISR 函数原型 BaseType_t xSemaphoreGiveFromISR( SemaphoreHandle_t xSemaphore, BaseType_t *pxHigherPriorityTaskWoken ); xSemaphore信号量的句柄。 pxHigherPriorityTaskWoken一个指向 BaseType_t 类型的变量的指针用于指示在 ISR 中调用时是否唤醒了更高优先级的任务。 返回值如果成功释放信号量则返回 pdPASS1否则返回 pdFAIL0。 xSemaphoreGive 函数原型 BaseType_t xSemaphoreGive( SemaphoreHandle_t xSemaphore ); 参数 xSemaphore信号量的句柄。 返回值如果成功释放信号量则返回 pdPASS1否则返回 pdFAIL0。 总结 本篇文章主要讲解了信号量的概念及API函数使用大家看完后可以做个总结并进行对应的实验。
http://www.yingshimen.cn/news/111562/

相关文章:

  • 那些网站用不着做优化wordpress使用百度分享插件下载
  • 汕头集团做网站方案北京建设集团网站
  • 长沙制作网页网站做网站具体步骤
  • 安徽动漫公司 网站制作 安徽网新广州冼村是什么梗
  • 黄骅港赶海免费最佳地点是哪里乐清seo公司
  • 中山专业制作网站快速搭建网站优帮云
  • 钦州住房和城乡建设局网站响应式网站模板的应用
  • 南宁网站设计平台做网站备案成功后怎么办
  • 手机无法安装wordpress泉州seo网站关键词优
  • 建设推广型网站做网站要学c语言
  • 文登区做网站的公司海珠网站建设报价
  • flash网站首页wordpress中文主程序优化
  • 做网站平台需要什么条件网站二级域名打不开
  • 徐州自助建站软件个人站长网站需要注册公司吗
  • 软件制作网站如何做网站挂qq
  • 2017国办网站建设规范wordpress pitch
  • 网站仿造网站的建设与运维
  • 七星彩网站建设网络营销案例文章
  • 做网站80端口建设银行网站的安全措施
  • 扬中最新招聘信息东莞网站优化如何
  • 策划专业网站绥化北京网站建设
  • 网站跟网页的区别是什么设计公司装修效果图
  • 网站建设 app开发 小程序网站无法访问的原因
  • 做策划的网站生活馆网站开发背景
  • 如何用ps做网站设计图跨境电商就是忽悠人的
  • 网站建设维护人员网站群管理平台建设
  • 衡水网站设计怎么做免费精准客户采集软件
  • 行业网站维护做互联网一个月挣多少钱
  • 如何做网站优惠券推广古典asp网站源码
  • 威海高端网站建设wordpress 表单页面