2016-10-01 2 views
0

В прошивке я могу создать НОД серийных очереди, как это:Как создать очередную очередь в Android?

let serialQueue = DispatchQueue(label: "serialQueue") 

Блоков выполняется в порядке FIFO, один блок за один раз. Как я могу сделать это в Android?

Это, как может быть выполнена часть кода на очереди:

serialQueue.async { 

Как я seeAsyncTask серийный: «Начиная с Honeycomb, задачи выполняются в одном потоке, чтобы избежать распространенных ошибок, вызванных параллельное выполнение ".

Я думаю, что это FIFO, исполнение.

Найдено this JAVA 8 учебник по параллелизму.

ответ

1

Использование Executor.newSingleThreadExecutor(). Вы можете передать Runnable или Callable<V>, который представляет собой работу, которую необходимо выполнить.

+0

Любые плюсы против 'AsyncTask'? –

+0

@ János: 'AsyncTask' специально для сценариев, где вы хотите работать над фоновым потоком (' doInBackground() '), а затем следить за работой над основным потоком приложения (' onPostExecute() '). Если вам не нужно это поведение, нет преимущества для «AsyncTask». – CommonsWare

0

Существует множество вариантов, основанных на ваших точных требованиях. Если я правильно задаю вопрос, исполнитель - это то, что вам нужно. И расширить его для создания SerialExecutor, как показано ниже,

https://developer.android.com/reference/java/util/concurrent/Executor.html

Что эти блоки? функции? Вам нужно сделать runnable объекты для исполнителя для выполнения каждого из ваших блоков.

Смежные вопросы