আমি http://gcc.gnu.org/onlinesocs/libstdc++/manual/shared_ptr.html পড়ছি এবং কিছু থ্রেড সুরক্ষা বিষয়গুলি এখনও আমার কাছে পরিষ্কার নয়:
- স্ট্যান্ডার্ড গ্যারান্টি দেয় যে রেফারেন্স গণনা থ্রেড হ্যান্ডলড নিরাপদ এবং এটি প্ল্যাটফর্মটি স্বাধীন, তাই না?
- অনুরূপ ইস্যু - স্ট্যান্ডার্ড গ্যারান্টি দেয় যে কেবল একটি থ্রেড (সর্বশেষ রেফারেন্স ধারণ করে) ভাগ করা বস্তুটিতে ডিলিট কল করবে, তাই না?
- শেয়ারড_পিটার এতে থাকা সামগ্রীর জন্য কোনও থ্রেড সুরক্ষার গ্যারান্টি দেয় না?
সম্পাদনা করুন:
সুডোকোড:
// Thread I
shared_ptr<A> a (new A (1));
// Thread II
shared_ptr<A> b (a);
// Thread III
shared_ptr<A> c (a);
// Thread IV
shared_ptr<A> d (a);
d.reset (new A (10));
চতুর্থ থ্রেডে রিসেট () কল করা কি প্রথম থ্রেডে তৈরি হওয়া একটি শ্রেণির পূর্ববর্তী উদাহরণ মুছবে এবং এটিকে নতুন উদাহরণের সাথে প্রতিস্থাপন করবে? তাছাড়া আইভি থ্রেডে রিসেট () কল করার পরে অন্যান্য থ্রেডগুলি কেবল নতুন নির্মিত বস্তুটি দেখতে পাবে?
make_shared
পরিবর্তেnew