在tkinter中同时运行多个函数

2024-10-02 12:26:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试做排序可视化。我已经做了3个气泡的可视化,快速和合并排序。当我运行这些排序时,会一个接一个地进行。如何一次运行这三个函数,以便比较这三个函数

这是我做的一般形式

def OnClick():
   BubbleSort(parameters)
   QuickSort(parameters)
   MeregeSort(parameters)

我希望这三个函数同时运行


Tags: 函数排序可视化def气泡形式parametersonclick
3条回答

您可以使用multiprocessing使用import multiprocessingimport concurrent.futures

https://docs.python.org/3/library/multiprocessing.html , Docs for multiprocessinghttps://docs.python.org/3/library/concurrent.futures.html , Docs for concurrent.futures

您可以为每个算法实现一个步骤函数,只需在循环中运行,并为每个算法一次可视化一个步骤。 如果需要,请考虑在状态对象中维护算法的状态。

编辑

我可以提供一个相当简单的实现: 让我们以boublesort为例。 创建一个BoublesortVisualizer对象,并定义一个step函数,该函数通过在算法前进一步的过程中从某个步骤运行boublesort来实现(比如说,每个循环)。 为了了解您所处的步骤,请在类中维护一些状态。 对其他排序算法执行相同的操作

现在,在OnClick函数中运行一个循环,该循环为每个排序函数调用step函数

您可以尝试在单独的线程中运行这三个函数:

import threading

def OnClick():
    for func in (BubbleSort, QuickSort, MergeSort):
        threading.Thread(target=func, args=(parameters,), daemon=True).start()

相关问题 更多 >

    热门问题