【问题标题】:Running multiple loops at once一次运行多个循环
【发布时间】:2017-09-11 14:40:32
【问题描述】:

所以我正在云上进行负载平衡,其中我将有多个任务或小云,它们将在不同的可用虚拟机上运行。我创建了如下的小云:

cloudlets = {}

cloudlets_no = 400
a = ""
for x in range(cloudlets_no):
    a = "cloudlet_id_{}".format(x)

    cloudlets[a] = 1000 + (random.randint(0,100))


sorted_keys = []

sorted_cloudlets = sorted(cloudlets, key=cloudlets.__getitem__)
for k in sorted_cloudlets:
    sorted_keys.append(k)
    print "{} : {}".format(k, cloudlets[k])

现在要在我所做的虚拟机(最初是单个虚拟机)上执行这些任务,

start = time.time()
for x in sorted_keys:
    rem = cloudlets[x]
    while rem != 0:
        rem -= 1

end = time.time()

现在的问题是我想创建多个 VM,并且我想同时运行它们,这就是我需要一次运行多个循环的原因。有没有办法可以实现这个或任何其他可能的解决方法。

感谢任何帮助。

【问题讨论】:

标签: python python-2.7 loops cloud


【解决方案1】:

您要研究的“一般”主题领域是线程。

线程允许您的代码分支,并同时运行多组指令。这是一个需要详细讨论的复杂主题,但基本思想是每个处理“线程”单独运行,并且与其他“线程”同时运行(您的操作系统负责如何在硬件上实际实现这一点)。

在python中,主要负责线程的模块有:

线程 - https://docs.python.org/2/library/threading.html#module-threading

多处理 - https://docs.python.org/2/library/multiprocessing.html#module-multiprocessing

这里当然要提的太多了,但希望这个答案中有足够的关键词可以让你开始研究。

【讨论】:

    最近更新 更多