এখানে অসংখ্য প্রশ্ন আছে। তাদের একবারে বিবেচনা করা:
রেফারেন্স অ্যাসাইনমেন্টটি পারমাণবিক তাই কেন ইন্টারলকড? এক্সচেঞ্জ (রেফ অবজেক্ট, অবজেক্ট) প্রয়োজন?
রেফারেন্স অ্যাসাইনমেন্টটি পারমাণবিক। ইন্টারলকড। এক্সচেঞ্জ কেবল রেফারেন্স অ্যাসাইনমেন্ট করে না। এটি একটি ভেরিয়েবলের বর্তমান মানের একটি পঠন করে, পুরাতন মানকে দূরে সরিয়ে দেয় এবং ভ্যারিয়েবলের কাছে নতুন মান নির্ধারণ করে, এটি সমস্তই পারমাণবিক ক্রিয়াকলাপ হিসাবে।
আমার সহকর্মী বলেছিলেন যে কয়েকটি প্ল্যাটফর্মে এটির নিশ্চয়তা নেই যে রেফারেন্স অ্যাসাইনমেন্টটি পারমাণবিক। আমার সহকর্মী কি সঠিক ছিল?
না। রেফারেন্স অ্যাসাইনমেন্টটি সমস্ত নেট নেট প্ল্যাটফর্মে পারমাণবিক হওয়ার গ্যারান্টিযুক্ত।
আমার সহকর্মী মিথ্যা প্রাঙ্গণ থেকে যুক্তিযুক্ত। তার মানে কি এই যে তাদের সিদ্ধান্তগুলি ভুল?
অগত্যা। আপনার সহকর্মী খারাপ কারণে আপনাকে ভাল পরামর্শ দিতে পারে। সম্ভবত ইন্টারলকড ব্যবহার করা উচিত এমন আরও কিছু কারণ রয়েছে x এক্সচেঞ্জ। লক-ফ্রি প্রোগ্রামিং অত্যন্ত তাত্পর্যপূর্ণ এবং ক্ষেত্রের বিশেষজ্ঞদের দ্বারা প্রণীত সু-প্রতিষ্ঠিত অনুশীলনগুলি থেকে আপনি যে মুহুর্তটি ছেড়ে চলে যাবেন, আপনি আগাছা থেকে দূরে রয়েছেন এবং সবচেয়ে খারাপ ধরণের জাতি অবস্থার ঝুঁকির মধ্যে আছেন। আমি এই ক্ষেত্রের বিশেষজ্ঞ বা আপনার কোডের বিশেষজ্ঞ নই, তাই আমি কোনওভাবেই বা অন্যভাবে রায় দিতে পারি না।
সতর্কতা উত্পন্ন করে "একটি অস্থির ক্ষেত্রের রেফারেন্সকে অস্থির হিসাবে বিবেচনা করা হবে না" এই সম্পর্কে আমার কী ভাবা উচিত?
সাধারণভাবে কেন এটি সমস্যা তা আপনার বুঝতে হবে। এই বিশেষ ক্ষেত্রে সতর্কবাণীটি কেন গুরুত্বহীন তা বোঝার দিকে পরিচালিত করবে।
সংকলক এই সতর্কতাটি দেওয়ার কারণটি হ'ল কারণ কোনও ক্ষেত্রটিকে অস্থির হিসাবে চিহ্নিত করার অর্থ "এই ক্ষেত্রটি একাধিক থ্রেডে আপডেট হতে চলেছে - এমন কোনও কোড তৈরি করবেন না যা এই ক্ষেত্রের মানগুলিকে ক্যাশে করে, এবং নিশ্চিত করে নিন যে কোনও পড়া বা লিখেছেন প্রসেসরের ক্যাশে অসঙ্গতিগুলির মাধ্যমে এই ক্ষেত্রটি "সামনে এগিয়ে এবং পিছনের দিকে" সরানো হয় না।
(আমি ধরে নিলাম যে আপনি ইতিমধ্যে এটি সমস্ত কিছু বুঝতে পেরেছেন v ডান পেতে খুব কঠিন; আপনার প্রোগ্রামটি ঠিক আছে তা নিশ্চিত করুন কারণ আপনি বুঝতে পারেন যে এটি কীভাবে কাজ করে, দুর্ঘটনার দ্বারা সঠিক নয়))
এখন ধরা যাক আপনি একটি পরিবর্তনশীল তৈরি করেন যা সেই ক্ষেত্রের রেফ পেরিয়ে একটি অস্থির ক্ষেত্রের একটি উপনাম। তথাকথিত পদ্ধতির অভ্যন্তরে, সংকলকটির জানার কোনও কারণ নেই যে রেফারেন্সটি উদ্বোধক শব্দার্থক হওয়া দরকার! কম্পাইলার আনন্দের সঙ্গে পদ্ধতি যা উদ্বায়ী ক্ষেত্রের জন্য নিয়ম বাস্তবায়ন করতে ব্যর্থ কোড উৎপন্ন হবে, কিন্তু পরিবর্তনশীল হয় একটি উদ্বায়ী ক্ষেত্র। এটি আপনার লক-মুক্ত যুক্তিটিকে পুরোপুরি ধ্বংস করতে পারে; অনুমান সবসময় যে একটি উদ্বায়ী ক্ষেত্র সর্বদা অস্থির শব্দার্থবিজ্ঞান দ্বারা অ্যাক্সেস করা হয়। এটি কখনও কখনও এবং অন্যান্য সময় নয় হিসাবে এটি অস্থির হিসাবে বিবেচনা করার জন্য কোনও অর্থবোধ করে না; তোমাকে সর্বদা করতে হবে সামঞ্জস্য থাকতে হবে অন্যথায় আপনি অন্যান্য অ্যাক্সেসের সাথে সামঞ্জস্যতার গ্যারান্টি দিতে পারবেন না।
অতএব, সংকলক আপনি যখন এটি করবেন তখন সতর্ক করে, কারণ এটি সম্ভবত আপনার সাবধানতার সাথে বিকাশযুক্ত লক-মুক্ত যুক্তিটিকে পুরোপুরি জড়িয়ে ফেলবে।
অবশ্যই, ইন্টারলকড। এক্সচেঞ্জটি একটি অস্থির ক্ষেত্রের প্রত্যাশা এবং সঠিক কাজটি করার জন্য লেখা হয়েছে। সতর্কতা তাই বিভ্রান্তিকর। আমি খুব আফসোস করছি; আমাদের যা করা উচিত ছিল তা এমন কিছু প্রক্রিয়া বাস্তবায়ন করা হয়েছিল যার মাধ্যমে ইন্টারলকডের মতো কোনও পদ্ধতির একজন লেখক এই পদ্ধতির উপরে একটি বৈশিষ্ট্য রেখে দিতে পারেন "এই পদ্ধতিটি একটি রেফ গ্রহণ করে যা ভেরিয়েটেলে অস্থির শব্দার্থকে কার্যকর করে, তাই সতর্কতাটি দমন করুন"। সংকলকের ভবিষ্যতের সংস্করণে আমরা এটি করব।