一次运行多个循环

时间:2017-09-11 14:40:32

标签: python python-2.7 loops cloud

所以我正在云上进行负载均衡,我将拥有多个任务或cloudlet,它们将在不同的虚拟机上运行。我创建了如下的cloudlets:

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])

现在我在VM上执行这些任务(最初是一个VM),

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

end = time.time()

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

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您要查看的“常规”主题区域是线程。

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

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

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

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

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