मुझे यकीन नहीं है कि यह xcode8 बीटा 5 में तोड़ दिया गया है। इस कोड को देखें। क्या आपको लगता है कि इसे पहले "ए" प्रिंट करना चाहिए, या "बी" पहले?क्या समवर्ती कतार पर `.barrier` तुरंत सक्रिय होना चाहिए?
let q = DispatchQueue(label: "q", attributes: .concurrent)
q.async(flags: .barrier) {
Thread.sleep(forTimeInterval: 0.25)
print("A")
}
q.sync {
print("B")
}
.barrier
की वजह से
, मुझे लगता है कि यह समवर्ती कतार और प्रिंट 'ए', 'बी' ब्लॉक करना चाहिए, लेकिन यह नवीनतम xcode बीटा में नहीं है।
बग? बाधा की गलतफहमी? तुम क्या सोचते हो?
कृपया ध्यान दें: मुझे पता है कि अगर मैं एक धारावाहिक कतार का उपयोग करता हूं तो यह अपेक्षित क्रम में प्रिंट करेगा - यह एक बहुत बड़ी प्रणाली का एक छोटा सा हिस्सा है और मुझे इस व्यवहार को अलगाव में समझने की आवश्यकता है।
के लिए धन्यवाद ओबीजेसी तुलना! मैंने इसे स्विफ्ट टीम के साथ दायर किया: https://bugs.swift.org/browse/SR-2335 मैं ऐप्पल की बजाय उस प्लेटफॉर्म की पारदर्शिता से प्रभावित हूं। हो सकता है कि यह कोड ऐप्पल के स्वामित्व में है? मेरे लिए बताना मुश्किल है। – SimplGy