এটি জিজ্ঞাসা করা অযৌক্তিক জিনিস নয়। সেখানে হয় ক্ষেত্রেই যদি তারা শুধুমাত্র পদ্ধতি বলা হয় যেখানে পদ্ধতি যা অন্যান্য পদ্ধতি সঙ্গে একযোগে থ্রেড-নিরাপত্তা বিষয় সৃষ্টি করতে পারে নিরাপদ।
যাইহোক, আপনি স্পষ্টকগুলিতে প্রদর্শিত কোডটি বিবেচনা করার সময় এটি স্পষ্টতই এটির একটি ঘটনা নয়:
public void Add(T item)
{
if (this._size == this._items.Length)
{
this.EnsureCapacity(this._size + 1);
}
this._items[this._size++] = item;
this._version++;
}
যদিও EnsureCapacity থ্রেডসেফ নিজে থেকেই ছিল (এবং এটি অবশ্যই নাও হয়), উপরোক্ত কোডটি স্পষ্টতই থ্রেডসেফ হতে যাচ্ছে না, বর্ধিত অপারেটরের এক সাথে কল করার সম্ভাবনা বিবেচনা করে ভুল লেখায়।
হয় লক করুন, কনক্রন্টলিস্ট ব্যবহার করুন, বা সম্ভবত একাধিক থ্রেড যে জায়গায় লিখেছেন তা লক-ফ্রি সারি ব্যবহার করুন এবং সেখান থেকে পঠন করুন - হয় সরাসরি বা এটির সাথে একটি তালিকা পূরণ করে - তারা তাদের কাজ শেষ করার পরে (আমি ধরে নিচ্ছি যে একক থ্রেডযুক্ত পাঠের পরে একাধিক একযোগে লেখাগুলি এখানে আপনার প্যাটার্ন, আপনার প্রশ্ন থেকে বিচার করা, অন্যথায় আমি দেখতে পাচ্ছি না যেখানে Addকেবলমাত্র একমাত্র পদ্ধতি বলা শর্তটি কোনওভাবেই কার্যকর হতে পারে)।