【超入門】マルチスレッドぉ?そんなの後だよ!あ・と・ま・わ・し!

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

CPU十分に使ってますか?
Core i7使ってるあなた!そのCPUパワー余らせてませんか?

そのプログラム、もっともっと高速動作させてみませんか?
エンジニアなら誰しもがあこがれるマルチスレッドの高速動作。
そんな「魅惑」あなたも習得しませんか?

マルチスレッドの根本は非同期です。
非同期をマスタすれば、マルチスレッドなんかちっとも難しくありません。
そんな非同期をマスタするためのトレーニング&実装方法をお伝えします。

AndroidでもiOSでもWinでもMacでも、今はメインスレッド(UIスレッド)という
考え方というのがあります。

つまり、メインスレッドでマウスやキーボード、タッチ動作のイベントに対して
なにかを処理する、イベントドリブン型プログラムな訳です。

一方、プログラム言語は、基本上から下に「順次」「逐一」的に処理する書き方を
します。

それ故、普通にプログラムを書くと、メインスレッドで全部処理するようになってしまい、
CPUがさっぱり活かされません。

ではどうするか!
前述したとおり、マルチスレッドの根本は、非同期です。
じゃぁ、非同期になるよう、実装、トレーニングすれば良いんだ!
ということになります。

そのトレーニング方法は・・・
基本遅延実行にしてしまうことです。

Java(Androidを例にとります)だと

//Some Activity Start
_handler.post(new Runnable() {
@Override
public void run() {
//do something
Intent intent = new Intent(MainActivity.this, someClass);
startActivity(intent);
}
});

Objective-Cだと

//各種WebViewのキャッシュクリア
dispatch_async(main_queue, ^{
NSURLCache *cache = [NSURLCache sharedURLCache];
[cache removeAllCachedResponses];
});

こんな感じ。

とにかく、ある一定のブロック単位で、どんどん、後回しに処理を遅延実行
させてあげるように実装していきます。
メインスレッドにポイポイ処理を放り込んでいくイメージです。
ポイポイ〜〜〜ってね。

これだけ!

基本遅延実行させてあげるように実装するだけで、非同期の処理に頭を
ならしていくわけです。
そうすれば、非同期処理の勘所をつかめるようになり、
あーここは、同期入れてあげないと動かないなー等がわかってくるように
なります。

もうそうなれば、脱入門者!
同期は、mutexなり、同期オブジェクトなりで。
同期に関する記事は、そこら中にあふれていますので、そこは、他の記事に
任せます。

もし、リクエストがあれば、書きます。

ちなみに、上記のように遅延実行をさせてあげるだけで、アプリのレスポンスは
格段に良くなります!
別次元のアプリみたいになりますよ!

非同期の処理になれてしまえばもうこっちのもん!
後はスレッド起動させて処理させてあげるようにしてあげれば、マルチスレッド
プログラミングの完成です!

Let’s try!!!
お試しあれ〜!!!


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ