2013-03-08 31 views
1

我想讓我的一個prolog程序在線程2中運行。當我在主線程中聲明某些內容時,線程2中的程序將監視該斷言並相應地執行不同的事情。我怎樣才能做到這一點?如何等待直到在prolog中聲明一個術語?

我寫這樣的東西,但它真的很糟糕,因爲它需要很多的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

線程模型是實現定義的。你應該說明你正在使用的Prolog。 – CapelliC 2013-03-08 15:43:01

回答

0

page關於線程通信是明確一些基本使用方法:消息隊列。

thread_get_message正在等待某個(可能)特定的項。

+0

它的工作原理。謝謝! – ziyangli 2013-03-10 16:06:41

相關問題