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

  • Christopher Bill

    Christopher

    30 NİSAN 2009
  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • PomplamooseMusic

    PomplamooseM

    28 HAZİRAN 2008