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

  • 时间:
  • 浏览:1
  • 来源:大发彩神UU快三_大发神彩UU快三官方

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

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

此时将sec注册为0,则work_sleep最终调用的sleep为0,即共要不产生延迟,也都还可不里能 判断sec,而且注册的sec为0,则不调用work_sleep()中的:

//执行工作 

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

在前面两篇文章中,而且考虑到顶端必须设计比较复杂的工作队列,很多很多很多很多加入了程序机制。但而且设计的是根小简单的听候工作队列,却用到了程序,我我确实没办法 必要,程序在你什儿 地方反倒是很糙浪费资源,干脆都还可不里能 不使用它,而将实现出队的操作如下,那我也都还可不里能 实现同样的效果。

而且该任务没办法 产生延迟,则在创建任务型态体初始化的完后 ,将工作者型态体中的sec初始化为0即可,那我,在入队操作的完后 ,注册工作者型态体:

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

//延迟上放这里,有一个 工作执行完,有而且要听候一下,延迟都还可不里能 上放这里 

而且顶端的队列设计得更加比较复杂,而且考虑到队列会产生阻塞,休眠的结果,则到完后 必须设计有一个 唤醒队列的机制,就必须程序间通信的知识支持了。

p->work_queue.work_sleep(p);

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

p->work_queue.queue_st(p);