2013-08-31 2 views
-4

ява java.util.concurrent.Executors конкретный класс [закрыт]ява java.util.concurrent.Executors конкретного класс

+0

Проверьте ответ. ThreadPoolExecutor - это конкретный класс. –

+3

Я думаю, что вы хотите знать, что такое статический заводский метод. Попробуйте этот учебник, который объясняет это очень хорошо: http://www.javacodegeeks.com/2013/01/static-factory-methods-vs-traditional-constructors.html –

ответ

1

Я думаю, это то, что вы ищете: http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html себя

Исполнителями являются конкретный класс. Думаю, вы говорили о java.util.concurrent.Exeuctor. Executors - это класс, который выступает в качестве фабрики для создания новых экземпляров ExecutorService. Когда вы делаете что-то вроде Exeuctors.newFixedThreadPool(5), вы уже инициализировали exeuctor. Что еще вы хотите сделать здесь?

+0

Нет, мой вопрос без экземпляра мы называем методом Интерфейс исполнителей ....так как JVM создает экземпляр –

+0

@RakeshSoni: похоже, вы хотите использовать многопоточность, не понимая, что такое статический метод. Это немного похоже на вождение Boeing, не зная, что означает * left * и * right *. Прочтите http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html. BTW, Executors, [как указывает javadoc] (http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Executors.html), не является интерфейсом. Это класс. –

+0

Извините, я был в замешательстве между java.util.concurrent.Executor и java.util.concurrent.Executors .... один - это интерфейс, а один - конкретный класс. –

2
Executors.newFixedThreadPool(int n) 

Используйте класс Executors для создания фиксированного пула потоков кэшированных файлов.

Все эти методы создают экземпляр ThreadPoolExecutor, который является классом реализации Concrete.

public static ExecutorService newFixedThreadPool(int nThreads) { 
     return new ThreadPoolExecutor(nThreads, nThreads, 
             0L, TimeUnit.MILLISECONDS, 
             new LinkedBlockingQueue<Runnable>()); 
    } 

Вы также можете обнаружить, что с помощью:

ExecutorService exec = Executors.newFixedThreadPool(int n); 
System.out.println(exec.getClass()); //will show ThreadPoolExecutor 
2

newFixedThreadPool(int nThreads) и newCachedThreadPool() методы Executors класса используются для создания пула потоков. Это статические методы фабрики, которые являются альтернативой использованию конструктора непосредственно для создания объекта. См Item 1. of Effective Java - Joshua Bloch

Java Документы для Executors объясняет это:

Factory и подсобные методы Executor, ExecutorService, ScheduledExecutorService, ThreadFactory и Callable классов, определенных в этом пакете. Этот класс поддерживает следующие виды методов:

  • Методы, которые создают и возвращают ExecutorService, с использованием обычно полезных настроек конфигурации.
  • Способы создания и возврата ScheduledExecutorService с использованием обычно полезных настроек конфигурации.
  • Методы, которые создают и возвращают «завернутый» ExecutorService, который отключает реконфигурацию, делая методы, специфичные для реализации, недоступным.
  • Методы, которые создают и возвращают ThreadFactory, который устанавливает новые созданные потоки в известное состояние.
  • Методы, которые создают и возвращают Callable из других закрывающих форм, поэтому их можно использовать в методах выполнения, требующих Callable.
Смежные вопросы