总体环境 :返回成功,其中异步启动一个线程池 去进行音频转码的操作。Executor executor =
Executors.newFixedThreadPool(5, ……});
CompletableFuture.supplyAsync(() -> {……}, executor)
因为转码是必须要完成的,不可以丢弃队列中的消息。因此我选用的是newFixedThreadPool,可以无限的等待(虽然五个线程会暂时顶满cpu) 我看了您的视频老大用的semaphore,我感觉也可以用来实现这个功能。但是我Google了很久,也没有比对出来哪个方案更好,所以希望老大解释一下两种优劣,然后教授一个您认为更好的方法。
还有一个问题 ExecutorService 我看您每次都是用这个,并且最后关闭。但是Executor没有提供和关闭线程池有关的方法,而且我认为也并不需要,比如我这个转码服务需要一直开启,并不需要关闭连接池。我这么理解对吗?