SWI-Prologでmulti-threadとsocket

ここしばらくSWI-Prologで遊んでます。
multi-threadとsocketを使ってechoサーバを作ってみたり。
ソケットに関しては、
tcp_socket
tcp_listen
tcp_bind
tcp_accept
といったそのまんまな名前の述語が用意されています。
マルチスレッドに関しては、
thread_create
という述語でスレッドを作るようです。
今回は使いませんでしたが、
thread_send_message
thread_get_message
という述語を使うことにより、
スレッド間通信ができるようです。
やっぱしErlangと感覚が似ている気がします。
ただ、こういったプログラムではバックトラックも使いませんし、
正直Erlangで書く方が大幅に楽だと思いました。
(まあ、これは私がPrologより先にErlangを触ったからかもしれませんが。)
詳細な情報はこのあたりに載ってます。

Leave a Reply