আমার এমন একটি সারি দরকার যা একাধিক থ্রেডগুলিতে স্টাফ রাখতে পারে এবং একাধিক থ্রেড পড়তে পারে।
পাইথনের কমপক্ষে দুটি সারি ক্লাস রয়েছে, কুই.উইউ এবং সংগ্রহগুলি.ডেক, প্রাক্তনটি আপাতদৃষ্টিতে অভ্যন্তরীণভাবে ব্যবহার করে। উভয়ই ডকুমেন্টেশনে থ্রেড-নিরাপদ বলে দাবি করে।
যাইহোক, সারি ডক্সে আরও বলা হয়েছে:
কালেকশন.ডেক হ'ল দ্রুত পারমাণবিক সংযোজন () এবং পোপফেল্ট () অপারেশন সহ আনবাউন্ডেড সারিগুলির বিকল্প বাস্তবায়ন যা লকিংয়ের প্রয়োজন হয় না।
যা আমি অনুমান করি যে আমি বেশ আনসারস্ট্যান্ড নই: এর অর্থ কি deque পুরোপুরি থ্রেড-নিরাপদ নয়?
যদি তা হয় তবে আমি দুটি শ্রেণীর মধ্যে পার্থক্যটি পুরোপুরি বুঝতে পারি না। আমি দেখতে পাচ্ছি যে সারি ব্লকিং কার্যকারিতা যুক্ত করে। অন্যদিকে, এটি ইন-অপারেটরটির জন্য সমর্থন মতো কিছু দর্শনীয় বৈশিষ্ট্য হারিয়েছে।
অভ্যন্তরীণ deque অবজেক্টটি সরাসরি অ্যাক্সেস করা হয়
x কাতারে ()। deque
থ্রেড নিরাপদ?
এছাড়াও, যখন ডিউটি থ্রেড-নিরাপদ ইতিমধ্যে সুরক্ষিত রয়েছে তখন কেন কুইউ তার ক্রিয়াকলাপগুলির জন্য একটি মিটেক্স নিয়োগ করে?
deque
একই থ্রেডে পুনরাবৃত্তি করতে গিয়ে কিছুক্ষণ যোগ / মুছুন তখনই আপনি এই ত্রুটিটি পেতে পারেন । আপনি এই ত্রুটিটিটি থেকে পেতে না পারার একমাত্র কারণ Queue
এটি Queue
পুনরাবৃত্তিকে সমর্থন করে না।
RuntimeError: deque mutated during iteration
আপনি যা পেতে পারেন তাdeque
বেশ কয়েকটি থ্রেড এবং লকিংয়ের মধ্যে ভাগ করে নেওয়া ব্যবহার করা হচ্ছে ...