散文で次のように説明できる高性能環境で問題が発生しました。
64個のリソースを持つFPGAカードを呼び出す外部JavaAPIがあります。アプリケーション内の数百のスレッド間でこれらのリソースのサブセットを安全に共有するためのメカニズムが必要です。各リソースはスレッドセーフではないと見なす必要があります。
そのため、update()メソッドを持つResourcePoolが必要です。このメソッドは、resource.update()を呼び出します。
これはかなり一般的なイディオムだと思いますが、Javaの概念に頭を合わせるのに苦労しています。1つのResourcePoolに4つのリソースがあると言いたいです。それぞれが独自のスレッドに住んでいると推測する必要があります(したがって、スレッドプールが必要になります)。
4つのリソースがすべて使用されているときにエラーをログに記録して続行できるようにするには、これをどのように実装しますか?
これが理にかなっていることを願っています!