final class CryptoService { static final ScopedValue<CipherPool> CIPHER_POOL = ScopedValue.newInstance(); public static void withPool(CipherPool pool, Runnable task) { ScopedValue.where(CIPHER_POOL, pool).run(task); } public static byte[] encrypt(byte[] input, byte[] key, byte[] iv) { try (var lease = CIPHER_POOL.get().acquire()) { Cipher c = lease.get(); // ޙུ ͜ͷ QPPMͷआ༻ͪΛ TFNBQIPSFΛར༻੍ͯ͠ޚ͢Δ