Пожалуйста, обратитесь к следующему фрагменту кода, который был взят из Asynctask Android. я думаю, что это пример Half Sync Half Async-шаблона параллельных шаблонов из книги Pattern Oriented Software Architecture. Может кто-нибудь, пожалуйста, подтвердите?Реализация Half Sync Половина Asyncc модели POSA в Android Asynctask
private static class SerialExecutor implements Executor {
final ArrayDeque<Runnable> mTasks = new ArrayDeque<Runnable>();
Runnable mActive;
public synchronized void execute(final Runnable r) {
mTasks.offer(new Runnable() {
public void run() {
try {
r.run();
} finally {
scheduleNext();
}
}
});
if (mActive == null) {
scheduleNext();
}
}
protected synchronized void scheduleNext() {
if ((mActive = mTasks.poll()) != null) {
THREAD_POOL_EXECUTOR.execute(mActive);
}
}
}
У меня есть вся идея. Конечно, SerialExecutor является примером Half Sync - Half Async. Здесь идет моя запись для внутренних элементов Asynctask ... https://docs.google.com/document/d/1_zihWXAwgTAdJc013-bOLUHPMrjeUBZnDuPkzMxEEj0/edit?usp=sharing –