我希望我的所有线程同时启动,但在我的代码中,它等待前一个线程在开始新线程之前完成它的进程。我希望所有的线程并行启动。
我的代码:
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
答案 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()
。