SORU
6 Kasım 2013, ÇARŞAMBA


Seri sıra dispatch_async ve dispatch_sync arasındaki fark?

Böyle seri bir sıra oluşturdum:

    dispatch_queue_t _serialQueue = dispatch_queue_create("com.example.name", DISPATCH_QUEUE_SERIAL);

dispatch_async arasındaki fark nedir böyle denir

 dispatch_async(_serialQueue, ^{ /* TASK 1 */ });
 dispatch_async(_serialQueue, ^{ /* TASK 2 */ });

Ve dispatch_sync bu seri sıra böyle denir?

 dispatch_sync(_serialQueue, ^{ /* TASK 1 */ });
 dispatch_sync(_serialQueue, ^{ /* TASK 2 */ });

Benim anladığım, gönderme yöntemi, TASK 1 kullanılır ne olursa olsun, idam ve TASK 2 doğru önce tamamlanacak.

CEVAP
6 Kasım 2013, ÇARŞAMBA


Evet. Seri kullanarak görevleri seri yürütülmesini sağlamak sıra. Tek fark blok sonra dispatch_sync sadece dönüş sırası eklenir ve bitmiş olabilir sonra dispatch_async dönüş ise tamamlandı.

bu kod için

dispatch_async(_serialQueue, ^{ printf("1"); });
printf("2");
dispatch_async(_serialQueue, ^{ printf("3"); });
printf("4");

her zaman 3 daha önce 2413 2143 1234 1 Yazdır

bu kod için

dispatch_sync(_serialQueue, ^{ printf("1"); });
printf("2");
dispatch_sync(_serialQueue, ^{ printf("3"); });
printf("4");

her zaman 1234 Yazdır

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Harvest: Greg Laurie

    Harvest: Gre

    6 HAZİRAN 2006
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010