Phần không đồng bộ của công văn async vs sync khác với đồng thời so với nối tiếp. Async có nghĩa là hàm trả về ngay lập tức, đồng bộ có nghĩa là nó sẽ đợi cho đến khi khối được thực hiện. Vì chuỗi/hàng đợi chính được nối tiếp, mọi thứ sẽ được thực hiện theo thứ tự - tôi tin rằng điều này có nghĩa là vì bạn đang yêu cầu gửi đồng bộ hóa trên cùng một chuỗi mà bạn gửi đi, nó sẽ trả về ngay lập tức, đợi cho đến khi kết thúc vòng lặp chạy hiện tại và bất kỳ thứ gì khác trong hàng đợi, và sau đó thực thi khối của bạn. Điều này hữu ích hơn trong hàng đợi hơn là trên chuỗi chính - bạn có thể xử lý dữ liệu của mình, để giao diện người dùng biết cập nhật và tiếp tục xử lý mà không cần chờ mọi thứ vẽ lại, v.v. Đó là lý do bạn sẽ thường thấy một cuộc gọi dispatch_async đến luồng chính bên trong một dispatch_async khác (hàng đợi đồng thời) thay vì chỉ một dispatch_sync.
Nguồn
2012-05-11 20:24:39
Lưu ý rằng nếu bạn tình cờ làm điều đó và ** BẠN ĐANG CÓ THẬT ** trên chuỗi chính, trên thực tế nó là ** QUITE HARMLESS **. Điều này rất thuận tiện khi bạn có mã mạng phức tạp! :) – Fattie