Info in developer site
SERIAL_EXECUTOR
An Executor that executes tasks one at a time in serial order.
THREAD_POOL_EXECUTOR
An Executor that can be used to execute tasks in parallel.
This serialization is global app-wide (process-wise). In this case tasks are stored in an unbounded queue that are passed to THREAD_POOL_EXECUTOR to be executed. The task can then be executed in any thread in the executor’s pool but SERIAL_EXECUTOR makes sure only one task is passed and executed at a time, not multiple.
link https://developer.android.com/reference/android/os/AsyncTask.html