内容へ移動
MSS Wiki 開発者ブログ (メモ?)
ユーザ用ツール
ログイン
サイト用ツール
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
最近の変更
メディアマネージャー
サイトマップ
トレース:
asynctaskメモ
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
===== Executor ===== ■AsyncTaskで選択出来る実行モード\\ ・THREAD_POOL_EXECUTOR (パラレル実行)\\ ・SERIAL_EXECUTOR (シリアル実行)\\ \\ ■AsyncTask#execute() を実行した際の実行モード\\ ・Gingerbread(2.x系)\\ THREAD_POOL_EXECUTORが採用される\\ \\ ・ICS以降(4.x系~)\\ SERIAL_EXECUTORが採用される\\ \\ ■ICS以降でパラレル実行するには\\ AsyncTask#executeOnExecutor(Executor, Object...)メソッドを使用する\\ ExecutorにAsyncTask.THREAD_POOL_EXECUTORを指定\\ \\ ===== パラレル実行時のスレッドプール ===== 並列多重度: 5 (CORE_POOL_SIZE)\\ 最大プール数: 128 (MAXIMUM_POOL_SIZE)\\ キューイング数: 10 (sPoolWorkQueue)\\ 並列処理が5多重を超えるとキューイングされる。\\ 要求のキューイングが出来なかった場合は最大128までプールする。\\ \\ ===== スレッドプールオーバー対策 ===== GridViewを高速スクロールした際などに、プール数が128を超えてしまい、\\ RejectedExecutionExceptionがthrowされる\\ // 高速スクロールした際のスレッドプールオーバー対策 boolean isPooled = false; do { try { new MyTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, Object); isFinish = true; } catch (RejectedExecutionException ree) { LogUtils.e("", "RejectedExecutionException"); try { Thread.sleep(500); } catch (InterruptedException ie) { ie.printStackTrace(); } } } while ( ! isPooled );
asynctaskメモ.1442401225.txt.gz
· 最終更新: 2015/09/16 20:00 by
sou
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ