tl;dr terserah pengembang dengan beberapa pengecualian
Pertama-tama, Anda tidak mengontrol thread melalui GCD, Anda menempatkan tugas di antrian.
Grand Central Dispatch (GCD) adalah teknologi yang dikembangkan oleh Apple Inc. untuk mengoptimalkan dukungan aplikasi untuk sistem dengan prosesor multi-core dan sistem multiprosesor simetris lainnya. Ini adalah implementasi paralelisme tugas berdasarkan pola kumpulan thread. Ide dasarnya adalah memindahkan pengelolaan kumpulan thread dari tangan pengembang, dan lebih dekat ke sistem operasi. Pengembang memasukkan "paket kerja" ke dalam kumpulan tanpa menyadari arsitektur kumpulan tersebut. Model ini meningkatkan kesederhanaan, portabilitas, dan performa.1
Kedua, apa yang Anda maksud dengan API? Saya kira Anda ingin mengatakan REST API. Asumsi lainnya adalah yang Anda maksud adalah SDK asli untuk layanan REST API, karena jika Anda mengimplementasikannya sendiri melalui perpustakaan jaringan maka Anda bertanggung jawab untuk ini. Seperti yang saya lihat dari pengalaman saya selama lebih dari 3 tahun di iOS, semua panggilan ke metode apa pun disinkronkan secara default, merupakan tanggung jawab pengembang untuk menempatkannya ke antrean lain melalui GCD atau NSOperationQueue atau apa pun.
Harap jangan bingung dengan adanya argumen blok penyelesaian di akhir panggilan API. Secara umum Anda juga bertanggung jawab untuk memastikan setiap pembaruan UI dilakukan di antrean utama, karena secara default blok ini dijalankan bukan di antrean utama, Anda mungkin ingin melakukan manipulasi pada data Anda peroleh dari server, mis. mengurutkan, mengonversi ke tipe lain, dll.
Hanya ada sedikit pengecualian pada SDK yang menempatkan seluruh blok penyelesaian pada antrean utama, misalnya. AFNetworking atau Parsing. Namun dalam kasus ini vendor SDK memberikan informasi tentang perilaku ini.
person
Yurii Kolesnykov
schedule
26.08.2015