dispatch_asyncを使います。
例えば、データのダウンロード処理をメインスレッド以外で実行してダウンロードしたデータを画面に表示する時に使います。画面の更新はメインスレッドでしかできないので、dispath_asyncを使って画面の更新処理をメインスレッドで実行するようにします。
dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"Main Queue"); });