同时运行方法

时间:2014-12-12 11:55:37

标签: python multithreading

在乞讨时我写了非常一般的主题,即使我知道线程和过程,但我不知道哪一个对我的情况更好。

好的,所以..代码:

class Proces(object):
[...]

def Obsluz(self):
    proces = LRU(self.sekwencja, int(self.przydzielone_ramki))
    proces.Symulacja("T")
    #.thread.join()
def Threads(self):
        thread = Thread(target = self.Obsluz)
        thread.start()
        thread.join()

并运行该代码:

for lru in self.lru_procesy:
        lru.Watek()

我想要实现的是同时运行Obsluz方法多次使用不同的params(从Proces.attributes获取)。它是随机数,有多少是过程对象。它可以是10/20/30等。

上面的代码没有像我想的那样运行,因为每个线程都是逐个结束的(因为.join())。是否可以同时运行这些?

谢谢你!

1 个答案:

答案 0 :(得分:2)

你刚刚开始一个工人,并立即等待它完成。

要生成多个工作线程并等待它们全部完成使用这样的事情:

  workers = []
  for wid in range(nworkers):
    w = Thread(target = dowork, args = ...)
    w.start()
    workers.append(w)
  # join all of the workers
  for w in workers: w.join()
  print "All done!"