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

  • Jose LviS el Bambino ( JLB )   LviSito

    Jose LviS el

    3 ŞUBAT 2008
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013