1

我希望我的序言程序之一在线程 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

4

1 回答 1

0

关于线程通信的页面,它明确说明了要使用的原语:消息队列。

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

于 2013-03-08T16:13:47.857 回答