0

非同期タスクとスレッドの関係について疑問に思っていますか? それぞれが新しいものを作成します, それはキャッシュされていますか, プールされています.

4

2 に答える 2

3

デフォルトでは、Asynctask はシリアル エグゼキューターを使用するため、単一のスレッドを使用してすべての asynctasks を単一のプロセスで実行します。しかし、あなたはそれを変えることができます。

ドキュメントを確認してください。

HONEYCOMB を開始すると、並列実行によって引き起こされる一般的なアプリケーション エラーを回避するために、タスクは単一のスレッドで実行されるように戻ります。本当に並列実行が必要な場合は、このメソッドの executeOnExecutor(Executor, Params...) バージョンを THREAD_POOL_EXECUTOR で使用できます。

ここで Asynctask のソースを確認することもできます

于 2012-09-26T16:41:00.663 に答える
0

Android のドキュメント自体から、AsyncTasks は「痛みのないマルチスレッド化」を可能にするため、AsyncTasks は明らかにバックグラウンドでスレッドを使用します。

私は最近、Eclipse で DDMS プラグインを使用して自分のアプリをプロファイルしました。DDMS を使用すると、現在実行中のスレッドの数とその名前を確認できます。

私がそこで見たものから、AsyncTasks はスレッド プールを使用して AsyncTasks を管理します。私の場合、「AsyncTask #1」から「AsyncTask #5」という名前の 5 つのスレッドがあり、1 つのサイクルで次々とアクティブ化されました。

これがあなたの質問の一部に答えることを願っています!

于 2012-09-26T16:49:51.360 に答える