ユーザーインターフェイススレッド
0からは並列処理、2011年2月のAndroid 3.0からはデフォルトは逐次処理と、色々と変遷した。並列処理にすると使うときにバグを生みやすくなると言うのが、逐次処理に戻した理由である。なお、ワーカー自体が逐次処理であっても、複数のワーカーインスタンスを作り、別々に実行すれば並列に処理できる。
Android 11以降はandroid.os.AsyncTaskは非推奨 (deprecated) となり、java.util.concurrentまたはKotlinコンカレンシーユーティリティの使用が推奨されている。
.NET言語では、TPLとコルーチンをバックエンドに利用した非同期処理の糖衣構文async/awaitも用意されている。async/awaitを使うことで、重い処理(I/Oのような完了時間が予測できない処理)はいったんサブスレッドに委譲しておき、その処理の完了を受けて後続処理を再開するようなコードを簡潔に記述できる。
UIスレッドではないサブスレッドでの処理の進捗や完了を画面表示する場合などは、処理の途中でユーザーインターフェイス要素の操作が必要となる。そういった場面では、サブスレッドからUIスレッドに操作を依頼(委譲)することが、まず必要である。