1

プロローグプログラムの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 に答える