设计一条简单的等待工作队列之软件模型设计与实现(三)

  • 时间:
  • 浏览:1
  • 来源:大发5分6合APP下载_大发5分6合APP官网

sleep(header->work_queue.sec);函数进行传参了,直接返回即可,日后就少调用sleep函数一次,提高了程序运行的数率:

//延迟贴到 这里,另一个工作执行完,有可能性要在等待一下,延迟可不前要贴到 这里 

p->work_queue.work_sleep(p);

p->work_queue.queue_st(p);

可能性该任务那么 产生延迟,则在创建任务形状体初始化的日后,将工作者形状体中的sec初始化为0即可,日后,在入队操作的日后,注册工作者形状体:

New->work_queue.sec = workArray->sec ;

New->work_queue.work_sleep = workArray->work_sleep ;

//执行工作 

http://blog.csdn.net/morixinguan/article/details/77783311

在前面两篇文章中,可能性考虑到上端前要设计简化的工作队列,什么都有加入了程序运行机制。但可能性设计的是一根绳子 简单的在等待工作队列,却用到了程序运行,随便说说那么 必要,程序运行在这个地方反倒是特别浪费资源,干脆可不前要不使用它,而将实现出队的操作如下,日后也可不前要实现同样的效果。

可能性上端的队列设计得更加简化,可能性考虑到队列会产生阻塞,休眠的结果,则到日后前要设计另一个唤醒队列的机制,就前要程序运行间通信的知识支持了。

此时将sec注册为0,则work_sleep最终调用的sleep为0,即离米 不产生延迟,也可不前要判断sec,可能性注册的sec为0,则不调用work_sleep()中的:

http://blog.csdn.net/morixinguan/article/details/77758206