multithreading - How are Atoms implemented in Clojurescript? -
लिखने के लिए मुद्दों में:
user = & gt; (Def my-atom (atom 0)) # 'user / my-atom user = & gt; @ माइ-एटम 0 उपयोगकर्ता = & gt; (स्वैप! माइ-एटॉम इंक) 1 उपयोगकर्ता = & gt; @ माइ-एटम 1 उपयोगकर्ता = & gt; (स्वैप! माइ-एटॉम (एफ एन [एन] (* (+ एन एन) 2)) 4) हम जानते हैं कि यह (क्लोज़र कार्यान्वयन में) है
दिलचस्प रूप से पर्याप्त, परमाणु, एक सिंटैक्टिक स्तर पर - भले ही जावास्क्रिप्ट रनटायम्स में कोई परमाणु संदर्भ नहीं है
मेरा प्रश्न यह है कि, कैसे क्लॉजस्क्रिप्ट में एटम का कार्यान्वयन किया जाता है? क्या वे सिर्फ एक वस्तु आवरण हैं?
स्वैप! और रीसेट! के कार्यान्वयन की जांच करें आपको पता चल जाएगा: (सेट! (.- राज्य ए ) नया
फिर, सेट पर जाएं! , आप पाएंगे कि संकलक सिर्फ एक असाइनमेंट कथन का उत्सर्जन करता है: (defmethod emit *: सेट! [{: Keys [target val env]}] (emit-wrap env (लक्ष्य "=" val))) < / html>
Comments
Post a Comment