Theo như tôi hiểu hàng đợi GCD không phải hàng đợi chính, chúng được nối tiếp theo mặc định chỉ trên các thiết bị có CPU đơn lõi. Nhưng nếu một thiết bị có nhiều lõi, nó có thể xảy ra các khối trong hàng đợi được thực hiện đồng thời.Làm thế nào để tạo một hàng đợi GCD luôn luôn nối tiếp, ngay cả trên các CPU đa lõi?
Tôi muốn sử dụng hàng đợi GCD nối tiếp để khắc phục một số sự cố đồng thời và hàng đợi này phải được nối tiếp ngay cả khi có nhiều lõi.
Nhà phát triển đã đề cập đến điều này là có thể bằng cách nào đó. Làm thế nào tôi sẽ tạo ra một hàng đợi luôn luôn nối tiếp?
trả lời tại http://stackoverflow.com/questions/5026043/concurrency-and-serial-queues-in -grand-central-dispatch. Sử dụng dispatch_sync trên hàng đợi GCD của bạn – CSmith
@CSmith Nope. Đó là đồng bộ, không phải nối tiếp. Nếu bạn có tác vụ không đồng bộ trong hàng đợi, nó có thể chạy cùng lúc với khối đồng bộ hóa của bạn. –
@CSmith cũng vậy, nếu hàng đợi được đề cập là hàng đợi đồng thời toàn cầu, dispatch_sync tương đương với dispatch_async, do đó sẽ không hoạt động ở đó. – jkh