示例#1
0
def additional_work(processor):
    sleep(0.001)

    if not processor.task:
        return

    processor.remaining_work -= processor.performance
    if processor.remaining_work < 0:
        processor.processed_tasks_number += 1
        processor.performed_operations += processor.task.complexity
        processor.task = None

for i in xrange(PROCESSORS_NUMBER):
    _processor = Processor(i, additional_work=additional_work)
    _processor.performance = randint(MIN_PERFORMANCE, MAX_PERFORMANCE)
    _processor.start()
    PROCESSORS.append(_processor)

scheduler = FifoTaskScheduler(task_queue, PROCESSORS)

thread.start_new_thread(generate_tasks, (0.001, task_queue))
thread.start_new_thread(schedule_tasks, (0.001, scheduler))

sleep(TEST_TIME)

FINISH = True
print len(task_queue.tasks)

processed_tasks_number = 0
performed_operations = 0