クライアントアプリにとって、マルチスレッドプログラミングは避けては通れない重要な概念です。しかし、気をつけないとハマるポイントも多く、初めてクライアントアプリを学ぶ人たちからすると、複雑で難解な取っつきづらいものでもあります。ここでは、スレッドの基本から、効率的な使い方、また複雑化しやすいポイントをシンプルに実装するためのノウハウを見ていきます。 TL;DR スレッドの取り扱い方を知る Threadをそのまま使わず、AsyncTaskやIntentService、時にThreadPoolExecutorを使ってスレッドの使い方を効率化する。 複雑な処理フローをシンプルに扱うためのフレームワークを導入する PromiseやRxAndroidなどで、複雑化しやすいポイントを整理する。 スレッドの基本 スレッドといえば、ThreadクラスやRunnableクラスがベースにあります。以下のようにす
![幸せな非同期処理ライフを満喫するための基礎から応用まで - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e22256a17ca0952ad4750b95e7ddd13cb28acfc7/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU1JUI5JUI4JUUzJTgxJTlCJUUzJTgxJUFBJUU5JTlEJTlFJUU1JTkwJThDJUU2JTlDJTlGJUU1JTg3JUE2JUU3JTkwJTg2JUUzJTgzJUE5JUUzJTgyJUE0JUUzJTgzJTk1JUUzJTgyJTkyJUU2JUJBJTgwJUU1JTk2JUFCJUUzJTgxJTk5JUUzJTgyJThCJUUzJTgxJTlGJUUzJTgyJTgxJUUzJTgxJUFFJUU1JTlGJUJBJUU3JUE0JThFJUUzJTgxJThCJUUzJTgyJTg5JUU1JUJGJTlDJUU3JTk0JUE4JUUzJTgxJUJFJUUzJTgxJUE3JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1kOTg4MDU4N2IzYTI2NzYzZTU3Y2ViMTE1ZTBlZTUyYg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwS2VpdGhZb2tvbWEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTIzNmQ3NmZkZjA3MDdkZGUyYzk2YmYxNWY4MWRjNDM2%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D636d90db955e37bd717dc4f70b845c6e)