ユーザ用ツール

サイト用ツール


asynctaskメモ

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
asynctaskメモ [2015/09/16 12:00]
sou
asynctaskメモ [2015/12/11 13:43] (現在)
sou [パラレル実行時のスレッドプール]
ライン 1: ライン 1:
-=== Executor ===\\+===== Executor ===== 
 ■AsyncTaskで選択出来る実行モード\\ ■AsyncTaskで選択出来る実行モード\\
 ・THREAD_POOL_EXECUTOR (パラレル実行)\\ ・THREAD_POOL_EXECUTOR (パラレル実行)\\
ライン 11: ライン 12:
 SERIAL_EXECUTORが採用される\\ SERIAL_EXECUTORが採用される\\
 \\ \\
-■ICS以降でパラレル実行するには+■ICS以降でパラレル実行するには\\
 AsyncTask#​executeOnExecutor(Executor,​ Object...)メソッドを使用する\\ AsyncTask#​executeOnExecutor(Executor,​ Object...)メソッドを使用する\\
 ExecutorにAsyncTask.THREAD_POOL_EXECUTORを指定\\ ExecutorにAsyncTask.THREAD_POOL_EXECUTORを指定\\
 \\ \\
-=== パラレル実行時のスレッドプール ===\\+ 
 +===== パラレル実行時のスレッドプール ===== 
 +下記のように設定されている模様。\\
 並列多重度:​ 5 (CORE_POOL_SIZE)\\ 並列多重度:​ 5 (CORE_POOL_SIZE)\\
 最大プール数:​ 128 (MAXIMUM_POOL_SIZE)\\ 最大プール数:​ 128 (MAXIMUM_POOL_SIZE)\\
ライン 22: ライン 25:
 並列処理が5多重を超えるとキューイングされる。\\ 並列処理が5多重を超えるとキューイングされる。\\
 要求のキューイングが出来なかった場合は最大128までプールする。\\ 要求のキューイングが出来なかった場合は最大128までプールする。\\
 +\\
 +GridViewを高速スクロールした際などに、プール数が128を超えてしまい、\\
 +RejectedExecutionExceptionがthrowされる\\
 +
 +===== Viewの参照を渡す場合はWeakReferenceを使用する =====
 +ViewがGCで破棄されるタイミングはActivityが破棄されるタイミングであるべきなので、\\
 +AsyncTaskがViewの参照を保持しないよう、WeakReferenceを使用する。
 +
 +
asynctaskメモ.1442372426.txt.gz · 最終更新: 2015/09/16 12:00 by sou