がくしです。
繰り返しAPIを呼び出すコードを書くと、実行に長い時間がかかってしまいます。そのため本稿では、実行速度を改善させるマルチスレッドという技術を使ったコードを紹介します。ここではコードと備忘録的なメモを載せる程度に留めますが、マルチスレッドの便利さだけでもお伝えできればと考えています。
最新記事一覧を取得した後、各記事のlike数を取得します。記事の数だけlike数取得APIを叩くことになるので、そこをマルチスレッドで処理しました。
APIで記事一覧取得とlike取得を実行するコード
Thred
target:処理内容
args :targetに渡す引数
start :処理開始
join :処理終了まで待機
Queue
マルチスレッドの入出力を管理
処理イメージ
入力値
↓
worker_queue
↓(各スレッドに振り分け)
マルチスレッド処理
↓
result_queue
↓(順番を決めて処理)
出力値
性能比較のための、マルチスレッドを使わない処理をするコード
最新記事1000件のlike数の取得にかかる時間を、シングルスレッドとマルチスレッドで比較しています。二倍以上の速さになっていることが分かると思います。
シングルスレッド
マルチスレッド
全くの説明不足ではありましたが、マルチスレッドで実行速度が上がったことは伝わったかと思います。実行速度に苛まれている方のお役に立てれば幸いです。
かしこ。