2014-06-12 176 views
0

我不得不想出三个线程的事件模拟。python异步线程/进程

  1. 该线程以规则的间隔(它没有其它功能)
  2. 该线程生成“任务”(我用来描述一组的功能的抽象)生成“蜱”。任务生成速率由分配指导
  3. 该线程生成“工作人员”(他们选择由2生成的任务并执行一些处理)。工人生成率是由不同的分配

在每个刻度为导向,线程2 & 3应该检查,如果他们是清醒的,如果是,则处理完成,否则,该处理开始于结束其睡觉时间。

我在我的代码中使用了某种形式的睡眠,但没有完全按照我的需要给出结果。

在每一跳,我这样做:

def run(self):  
     while True: 
      task = Task().create() 
      self.numTasks += 1    
      task_wait_time = Random.poisson(<value read off a config>) 
      time.sleep(task_wait_time) 
      worker = Worker().create() 
      self.numWorkers += 1 
      worker_wait_time = Random.poisson(<different value read off a config>) 

但在这里,很明显,事情是不对的。任务等待,然后等待工作人员。 可以有并行等待发生,或并行任务和工人代。

我没有读过关于线程模块的内容,但是还没有能够使用它来获取所有3件事情。在线上的一些例子,我想出了一个线程版本,它不使用“嘀嗒”而是其他两个。我还没有测试它。

我不清楚如何使这项工作,请亲引导我。

回答