2012年05月17日

objective-c gcdの使い方

お願いします♪いいねとかつぶやいたりして下さい
 
非同期処理と呼ばれるもの。
これを使えば2つの処理を同時に行うことができる。

- (void)viewDidLoad
{
    [super viewDidLoad];
	
    NSDate *now = [NSDate date];
    
    dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
	dispatch_group_t g = dispatch_group_create();
	dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);//同期処理の個数を書く。2つの処理を同時に行う場合は1
    
	dispatch_group_async(g,q,^{
		
        int i = 0;
        while(i < 100){
            NSLog(@"%d",i);
            i++;
        }
        
		dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
		dispatch_semaphore_signal(semaphore);
	});
	dispatch_group_async(g,q,^{
        
        int i = 0;
        while(i < 100){
            NSLog(@"%@",@"----------------------------------");
            i++;
        }
        
		dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
		dispatch_semaphore_signal(semaphore);
	});
    
    
    
	dispatch_group_wait(g, DISPATCH_TIME_FOREVER);
    
    NSDate *then = [NSDate date];
 
    NSLog(@"then - now: %1.3fsec",[then timeIntervalSinceDate:now]);
	printf("end");
}


で、とりあえず使い方はこれでいいんだろうけど、
遅いんだよな。
gcd使った場合の方が。

URLを同時に取りにって解析とかの場合は早くなるんだろうか。
関連するタグ:
あなたにとって有用な記事でしたか?是非ブックマークしておくことをおすすめします。
 




ライブラリを配布しちゃったり
webデザイン
Fireworks
HTMLコーディング
CSS
Dreamweaver
携帯サイト
webプログラム
PHP
正規表現
cakephp
MYSQL
javascript
webマーケティング
adwords
analytics
windows7
ショートカットキー
おすすめ情報
サイト
facebook
ライブラリ
配布
アプリ
iphone
ipad
サーバー
さくらサーバー
全ての記事を読む




トップ - 最新の記事一覧 - お問い合わせ