簡體   English   中英

數據結構控制下一步

[英]Data structure to control the next step

我正在學習協程

class Scheduler:
    def __init__(self):
        self.ready = Queue() # a queue of tasks that are ready to run.
        self.taskmap = {} #dictionary that keeps track of all active tasks (each task has a unique integer task ID)

    def new(self, target): #introduce a new task to the scheduler
        newtask = Task(target)
        self.taskmap[newtask.tid] = newtask
        self.schedule(newtask)
        return newtask.tid

    def schedule(self, task):
        self.ready.put(task)

    def mainloop(self):
        while self.taskmap: #does not remove element from taskmap
            task = self.ready.get() self.ready
            result = task.run()
            self.schedule(task)

當按計划讀取task = self.ready.get()時,我突然意識到數據結構的本質與控制有關,以控制下一步,而算法的本質也與控制有關,即對所有步驟進行控制。

理解有意義嗎?

Queue對象定義了下一步的控制,是的。 如此處所述,它是FIFO

在這里,您似乎只是想跟蹤任務,是否還有剩余的,正在執行的等等。 這就是“控制所有步驟”。 是。

目的尚不清楚。 數據結構和算法應適合您的目的。 asyncio可以幫助您實現並行性和事件驅動的設計。 有時目標是快速有效地將數據從源渲染到數據結構中。 在最終目標的背景下,您所獲得的意義(至少對我而言)更有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM