我在高性能环境中遇到问题,可以用散文描述如下:
我有一个外部 Java API,它调用具有 64 个资源的 FPGA 卡。我需要一种机制来在应用程序中的数百个线程之间安全地共享这些资源的子集。每个资源都应该被认为不是线程安全的。
所以我需要一个带有方法 update() 的 ResourcePool,然后调用 resource.update()。
我认为这是一个相当普遍的习语,但我很难将自己的头脑融入 Java 概念。我想说在一个 ResourcePool 中有 4 个资源。我猜每个人都应该生活在他们自己的线程中(因此需要一个线程池)。
我将如何实现这一点,以便我可以记录错误并在所有 4 个资源都在使用时继续?
希望这是有道理的!