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

没备案的网站收录とらぶるだいあり しすた在线

没备案的网站收录,とらぶるだいあり しすた在线,阿里云买完域名空间如何做网站,比价 wordpress 插件下载消息队列 ​ 消息队列是一种常用的线程间通讯方式,用来传输数据。使用消息队列传输数据时有两种方法:拷贝:把数据、把变量的值复制进消息队列里;引用:把数据、把变量的地址复制进消息队列里。rtt使用拷贝值的方法。 …

消息队列

​ 消息队列是一种常用的线程间通讯方式,用来传输数据。使用消息队列传输数据时有两种方法:拷贝:把数据、把变量的值复制进消息队列里;引用:把数据、把变量的地址复制进消息队列里。rtt使用拷贝值的方法。

​ 消息队列的创建有两种方法:动态分配内存rt_mq_create、静态分配内存rt_mq_init

rt_mq_create的函数原型:

rt_mq_t rt_mq_create(const char* name, rt_size_t msg_size,rt_size_t max_msgs, rt_uint8_t flag);

​ 其中flag可取两个值:RT_IPC_FLAG_FIFO:先进先出,等待线程按照先进先出方式排队;RT_IPC_FLAG_PRIO:优先级等待,队列将按照优先级进行排队,优先级高的等待线程将会插队排在优先级低的等待线程前。

​ 同样消息队列的删除/脱离也有两种方法:rt_mq_delete(),rt_mq_detach()。

删除消息队列rt_mq_delete(),它会释放内存,如果删除消息队列时有线程在等待该队列,则内核会先唤醒这些线程(线程返回值是 - RT_ERROR),然后再释放消息队列使用的内存,最后删除消息队列对象

rt_err_t rt_mq_delete(rt_mq_t mq);

​ 发送消息有三种函数:rt_mq_send() 发送消息,rt_mq_send_wait() 等待方式发送消息,rt_mq_urgent() 发送紧急消息。线程或者中断服务程序都可以往消息队列写入消息。发送消息时,从空闲消息链表取一个空闲消息块,把消息复制到该消息块,然后把消息块挂到消息队列尾部。

  • 使用 rt_mq_send()发送消息时,队列中有空闲消息块时,才能成功发送消息,否则返回错误码(-RT_EFULL)。
  • 使用 rt_mq_send_wait()发送消息时,如果队列中没有可用的空闲消息块,会根据timeout 参数等待,超时后才返回错误
  • 使用 rt_mq_urgent()发送消息时,也要先得到空闲消息块,它会把消息块放在消息队列的头部,以便这个消息能被第 1 时间读取。

发送消息的函数原型如下:

rt_err_t rt_mq_send (rt_mq_t mq, void* buffer, rt_size_t size);

发送消息时,如果消息队列已满,并且有多个发送线程同时等待发送,这时当接收线程接收一个消息时,就会有一个空闲的位置,如果该消息队列是RT_IPC_FLAG_FIFO,那么就由等待最久的发送线程发送消息,如果该消息队列是RT_IPC_FLAG_PRIO,那么谁优先级高谁先发。

等待方式发送消息的函数原型如下:

rt_err_t rt_mq_send_wait(rt_mq_t mq, const void *buffer,rt_size_t size,rt_int32_t timeout);

发送紧急消息的函数原型如下:

rt_err_t rt_mq_urgent(rt_mq_t mq, void* buffer, rt_size_t size);

​ 当队列有消息时,使用收消息函数,可以从队列接收消息。如果没有消息,根据指定的 timeout 参数等待,直到超时结束。收消息的函数为rt_err_t rt_mq_recv ,原型如下:

rt_err_t rt_mq_recv (rt_mq_t mq, void* buffer,rt_size_t size, rt_int32_t timeout);

​ 如果由多个发送线程通过同一个消息队列发出数据,想要在接收线程中分辨数据来源,可以将写入消息队列的数据换成结构体,在结构体中写入数据来源

typedef struct {ID_t eDataID;          //数据来源int32_t lDataValue;    //数据
}Data_t;
http://www.yayakq.cn/news/816863/

相关文章:

  • 心理咨询网站php后台一般需要哪些模块应用软件有哪些?
  • 建站官网西安网站设计哪家公司好
  • 网站如何做关键词seowordpress 增强编辑器
  • 笔记本做网站服务器移动端ui设计
  • 青岛建手机网站公司.我爱你 域名网站
  • 香河住房和建设局网站wordpress模板学校
  • 虚拟资源站码支付wordpress网站图片尺寸
  • 什么做电子书下载网站如何做网站 写代码
  • 传媒公司网站设计wordpress播放器
  • 秦皇岛网站制作专家教您简单建站最新网游排行榜2023
  • 那些行业做网站优化的比较多修改wordpress文章发布页
  • 黑龙江建设厅网站 孙宇wordpress保存502
  • 购物网站建设ppt手机淘宝客网站怎么做的
  • 购物网站 备案郭仓镇做网站
  • wordpress 前台会员昆明官网seo诊断
  • 海阳做网站飞鸟加速器
  • 厦门网站营销百度平台
  • 网站空间ip能做视频的软件有哪些
  • 赣州网站建设价格传奇来了网页版
  • 求网站建设和网页设计的电子书张家界优秀网站建设
  • 怎么查询建设通网站图怪兽作图神器下载
  • 网站开发用到哪些技术郑州航空港建设局网站
  • 网站浏览器不兼容怎么办优化网站具体如何做
  • 网站改版做301东莞做企业营销型网站的公司
  • 企业网站建设飞沐织梦做响应式网站
  • 推荐常州网站建设公司如何选择大良网站建设
  • 东莞网站制作培训多少钱网站的毕业设计怎么做
  • 建站公司海报制作
  • 如何把自己做的网站放到网上阿里巴巴网站建设的功能定位
  • 学校多语言网站建设郑州教育信息网