4
Prolog中的线程不会共享来自它们堆栈的数据(它在文档中是这样说的)。 但是,从我所了解的情况来看,这可以通过将线程与thread_join结合来解决。 如果我迄今为止所说的任何内容都是错误的,请纠正我。 但是,如果一切都是真的,请告诉我为什么下面的代码不输出我期望的结果?Prolog - thread_join问题
maximum(X,Y,Y) :- X =< Y,!.
maximum(X,_,X).
start :- thread_create(maximum(5,6,X),Id1,[]),
thread_create(maximum(8,7,Y),Id2,[]),
thread_create(maximum(9,9,Z),Id3,[]),
thread_join(Id1,_),
thread_join(Id2,_),
thread_join(Id3,_),
writeln(X),
writeln(Y),
writeln(Z).
P.S.我期望它输出的是6,8和9(分开)。
它很完美。感谢百万的解释和代码。 – conectionist 2011-05-22 08:26:49
thx为你的榜样! – repeat 2015-12-23 02:43:44