すべてのメソッド呼び出しで新しいExecutorServiceを作成するか、クラスごとに1つずつ使う必要がありますか?パフォーマンスの面で好ましい選択肢はどれですか?あなたの最初のコードでExecutorService - クラスごとに1つのメソッドに対して新しいインスタンスを作成する
public class NotificationService {
public void sendNotification(User recipient) {
ExecutorService notificationsPool = Executors.newFixedThreadPool(10);
// code
notificationsPool.shutdown();
}
}
それとも
public class NotificationService {
ExecutorService notificationsPool = Executors.newFixedThreadPool(10);
public void sendNotification(User recipient) {
// code
}
}
パフォーマンスに基づいてこれを選択しないでください。あなたは必要なものに基づいてこれを選択します。ユーザーに通知を送信するために10個の新しいスレッドが必要ですか?それらのうちの1つだけを使用すれば、再利用可能なスレッド10個のプールを1つだけ持つことができます(ユーザーに通知を送信すると仮定した場合)。 –
ユーザーは複数のキーと関連している可能性があります。しかし、投稿前に変更された良いコード例ではありません。 – Justas