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

图书网站建设的规模策划书做展示网站步骤

图书网站建设的规模策划书,做展示网站步骤,网页浏览器在哪里,常州中环互联网网站建设消息 从概念上讲#xff0c;消息机制和邮箱机制很类似#xff0c;区别在于邮箱一般只能容纳一条消息#xff0c;而消息则会包含一系列的消息。 系统定义了一个全局变量g_msgctr_header#xff0c;通过它可以查找到任一已创建的消息容器。 每一个消息容器都可以根据其参数…消息 从概念上讲消息机制和邮箱机制很类似区别在于邮箱一般只能容纳一条消息而消息则会包含一系列的消息。 系统定义了一个全局变量g_msgctr_header通过它可以查找到任一已创建的消息容器。 每一个消息容器都可以根据其参数性质1VS11对1的消息通信、1VSn1对多的消息通信、nVSn多对多的消息通信、nVS1等来实现不同的通信方式。 这里的消息容器只是一个线程间的通信结构acoral_msgctr_t是消息的存储容器一个消息容器可以通过它的消息链指针成员挂载多条消息结构。 而消息结构是消息的容器一个消息结构包含一条消息。 aCoral并没有采用数组之间存储消息指针的经典实现形式而是在消息上又包装了一层结构这样的实现是为了功能上的扩展只要稍作改进就可以实现消息功能的进一步增加如消息最大生存时间一次唤醒多个等待线程等功能。 //消息容器 typedef struct {acoral_res_t res; //消息容器也是资源char *name;acoral_list_t msgctr_list;//全局消息容器的挂载钩子unsigned int count; //消息数量unsigned int wait_thread_num; //等待线程数acoral_list_t waiting; //等待线程指针链acoral_list_t msglist;//消息指针链用于挂载消息 }acoral_msgctr_t;//消息 typedef struct {acoral_res_t res;acoral_list_t msglist; //挂载钩子成员用于将消息结构挂载到消息容器上unsigned int id; //消息标识用于区分一个消息容器不同消息结构类型的成员通过它可以实现1VSn的结构。unsigned int count;//消息被接收次数每接受一次减一直到0为止。通过它可以实现一次发送多次接收的功能。unsigned int ttl;//消息最大生存周期当一个消息生存周期到时将自动删除不可以再被接收。void *data; //消息指针 }acoral_msg_t;如何创建消息容器以供线程间传递数据使用。 acoral_msgctr_t *acoral_msgctr_create() {acoral_msgctr_t *msgctr;msgctr acoral_alloc_msgctr();//申请一片内存空间分配的方式和过程与线程TCB的分配类似即从内存资源池中获取一个资源对象供消息容器acoral_msgctr_t使return (acoral_msgctr_t *)acoral_get_res(acoral_msgctr_pool_ctrl);if(msgctr NULL)return NULL;msgctr-name NULL;msgctr-count 0;msgctr-wait_thread_num 0;acoral_init_list(msgctr-msgctr_list);acoral_init_list(msgctr-msglist);acoral_init_list(msgctr-waiting);acoral_list_add2_tail(msgctr-msgctr_list, (g_msgctr_header));return msgctr; }创建消息前面提到消息容器并不直接包含消息在消息容器之下还有一层消息结构因而消息的创建即是先创建消息结构再将消息挂到消息结构的过程。 acoral_msg_t *acoral_msg_create(unsigned int count,unsigned int id, unsigned int nTtl, void *data) {acoral_msg_t *msg;msg acoral_alloc_msg();if(msg NULL)return NULL;msg-id id;msg-count count;msg-ttl nTtl;msg-data data;acoral_init_list(msg-msglist); }一个消息的创建接口需要五个参数消息被接收次数、错误码、消息ID、生存周期和消息指针指向被发送的消息。 其中前三个参数都是为了扩展而引入的aCoral只提供了接口和基本实现但并未在消息传递具体过程中使用如果需要进行扩展只需要简单更改源代码即可用于功能的扩充。 发送消息aCoral消息发送是需要先前创建的消息容器队列和消息队列。消息发送时首先将包含消息的消息结构挂到消息容器的消息链上然后判断是否有等待的线程如果有的话则唤醒最高优先级的线程。 unsigned int acoral_msg_send(acoral_msgctr_t *msgctr, acoral_msg_t *msg) {acoral_enter_critical();if (NULL msgctr){acoral_exit_critical();return MST_ERR_NULL;}if (NULL msg){acoral_exit_critical();return MSG_ERR_NULL;}//消息数限制if(ACORAL_MESSAGE_MAX_COUNT msgctr-count){acoral_exit_critical();return MSG_ERR_COUNT;}//增加消息msgctr-count;msg-ttl acoral_get_ticks();acoral_list_add2_tail(msg-msglist, msgctr-msglist);//唤醒等待if(msgctr-wait_thread_num 0){wake_up_thread(msgctr-wiating);msgctr-wait_thread_num--;}acoral_exit_critical();acoral_sched();return MSGCTR_SUCCED; }
http://www.pierceye.com/news/479347/

相关文章:

  • 绍兴专业网站建设公司大型网站建设哪家好
  • 天河网站设计响应式视频网站模板
  • 网站制作老了手机网站模板开发
  • 哪家网站建设比较好海拉尔建网站
  • 丹东网站推广海南行指专业网站开发
  • 网站如何调用手机淘宝做淘宝客中国企业网站查询
  • 淄博建设工程学校官方网站专门做商标的网站有哪些
  • 私人免费网站怎么下载企业网站设计方案
  • 做阿里巴巴网站找谁互联网推广公司
  • 网站如何做微信支付宝支付宝支付网页传奇发布网
  • 网站建设语录谷歌浏览器官网下载
  • 互动营销网站免费学高中课程的软件
  • 沈阳网站建设活动方案公司网站建设攻略
  • 建网站 方法喜来健cms系统
  • 甘肃 网站备案关于网站开发费用的入账
  • 南昌建网站的公司个人博客模板网站
  • 银川建设局网站丹江口网站制作
  • 做化工的 有那些网站自动的东莞网站制作公司
  • 做网站要求高吗中国建设教育网
  • 支付宝 手机网站开发seo优化在哪里学
  • 建筑工人找活的平台郑州网站优化托管
  • 微网站 下载网站建设找刘贺稳营销专家
  • 网站建设的需求文档视频直播网站开发
  • 高州网站设计鄂尔多斯建设招投标网站
  • 建立网站看病的经济问题菜单设计制作图片
  • 网站推广优化招聘seo整站优化托管
  • 企业网站建设方案百度文库北京正邦品牌设计公司
  • 新乡个人网站建设国际婚恋网站排名
  • 昆明网站建设哪家seo内部优化具体做什么
  • 网站架构设计师浙江省建设厅网站证件