並行処理の存在は,プログラムやそれを記述するための言語仕様に対して,良くも悪くも影響を及ぼします。FFIも例外ではありません。FFIの仕様やFFIを使ったプログラムを並行処理しようとする場合,きちんと考慮しなければうまく動作しない可能性があります。 第12回で説明したように,GHCの拡張機能や次期標準Haskell'で追加される新機能という形で,Haskellにもスレッドを使用した並行処理の仕組みが存在します。今や,実用的なプログラムを作るうえで,FFIとスレッドとの関連を避けて通ることはできません。 FFIをスレッドに対応させるための追加仕様は,「Extending the Haskell Foreign Function Interface with Concurrency」という論文,およびそれを要約した「The Concurrent Haskell Foreign Function
![第24回 マルチスレッド環境下でのFFIの利用](https://cdn-ak-scissors.b.st-hatena.com/image/square/bed39b5962a5d552c95b6d796db8f55e72d32943/height=288;version=1;width=512/https%3A%2F%2Fxtech.nikkei.com%2Fimages%2Fn%2Fxtech%2F2020%2Fogp_nikkeixtech_hexagon.jpg%3F20220512)