如何在prolog中等待一个术语?

时间:2013-03-08 15:35:12

标签: prolog

我希望我的一个prolog程序在线程2中运行。当我在主线程中断言时,线程2中的程序将监视断言并相应地执行不同的操作。我怎样才能做到这一点?

我写了这样的东西,但它真的很糟糕,因为它占用了大量的CPU!

read_action(Act) :-
    open('action.txt', read, Stream),
    (can(go_next) ->
        read_line_to_codes(Stream, Act),
        write(Act),
        close(Stream)
        ;
        close(Stream),
        read_action(Act)),
    retractall(can(_)).

我正在使用Swipl

1 个答案:

答案 0 :(得分:0)

关于要使用的原语的明确的线程通信page:消息队列。

thread_get_message锁定等待(可能)特定术语。