Python线程 - 让线程在不等待前一个线程完成的情况下启动

时间:2017-11-24 23:20:00

标签: python multithreading python-2.7

我希望我的所有线程同时启动,但在我的代码中,它等待前一个线程在开始新线程之前完成它的进程。我希望所有的线程并行启动。

我的代码:

value(Frame, Slot, Value):-
    iscallable(Frame),               
    call(Frame, Slot, Value).                    % <- here
value(Frame, Slot, Value):-
    parent(Frame, ParentName),
    value(ParentName, Slot, Value).

parent(Frame, ParentName):-
    iscallable(Frame),
    (call(Frame, a_kind_of, ParentName);         % <- here
     call(Frame, instance_of, ParentName)).      % <- here

1 个答案:

答案 0 :(得分:1)

这一行是主要问题:

Task = Thread(target=Main.obscure(i))

target传递调用 Main.obscure(i)的结果,要在线程中运行的函数。您当前正在主线程中运行该函数,然后传递target=None

你想:

Task = Thread(target=Main.obscure, args=(i,))

然后,Thread将安排使用帖子中列出的参数调用Main.obscure

此外,Main = Main()会使用Main的实例覆盖class Main声明...但是您永远无法创建另一个实例,因为您已经丢失了对该实例的引用类。使用其他名称,例如main = Main()