iPhone マルチスレッドを1つだけにする

最近iPhoneの記事が多いですが・・・。

iPhoneアプリが起動時にサブプロセスを起動させて、何かと重たい処理はそっちにお願いみたいなことはよくやりたいと思いますが、単純に起動時にサブプロセスを作っていると、アクティブ、非アクティブと変更しているといつの間にか複数プロセスがごろごろ。

原因は生成するタイミングにあった訳ですが。
・アクティブ時にログイン認証を行う
・ログイン認証が終わったタイミングで生成

要するにアクティブになったタイミングで次々とプロセスを生成していました。

そこで生成する箇所で既に生成済みの場合はプロセスを生成しないようにしました。
念のため、同期処理の宣言を入れてます。


@synchronized(self) {
        if (!_existsDaemon) {
            _existsDaemon = YES;
            // サブスレッドを作成する
            [NSThread detachNewThreadSelector:@selector(_startDaemon) toTarget:self withObject:nil];
        }
    }

0 件のコメント:

コメントを投稿

DataStoreの辛いところ

# DataStoreの限界 FacebookやインスタグラムのようなSNSで、投稿、公開範囲、お気に入りなどの機能をDataStoreで実現しようとするとどうしても辛くなる。 ## DataStoreで実現可能? - users - id - feeds - i...