রিড কপসি এবং অ্যালেক্স মার্তেলির দেওয়া উত্তরের সাথে একমত হয়ে আমি আরও একটি পার্থক্য তুলে ধরতে চাই - গ্লোবাল ইন্টারপ্রেটার লক (জিআইএল)। যদিও আয়রন পাইথনের জিআইএল-এর সীমাবদ্ধতা নেই, তবে সিপথন তা করেছে - সুতরাং এটি প্রদর্শিত হবে যে জিআইএল হ'ল একটি বাধা, নির্দিষ্ট মাল্টিকোরের পরিস্থিতিতে বলুন, পাইথন.নেটের চেয়ে আয়রন পাইথনের একটি সুবিধা রয়েছে has
পাইথন.নেট ডকুমেন্টেশন থেকে:
এম্বেডকারীদের জন্য গুরুত্বপূর্ণ দ্রষ্টব্য: পাইথন ফ্রি-থ্রেডেড নয় এবং একাধিক-থ্রেডযুক্ত অ্যাপ্লিকেশনকে পাইথন ইন্টারপ্রেটারের সাথে নিরাপদে ইন্টারঅ্যাক্ট করার অনুমতি দেওয়ার জন্য একটি গ্লোবাল ইন্টারপ্রেটার লক ব্যবহার করে। www.python.orgওয়েবসাইটে পাইথন সি এপিআই ডকুমেন্টেশনে এটি সম্পর্কে আরও অনেক তথ্য পাওয়া যায়
।
পরিচালিত অ্যাপ্লিকেশনটিতে পাইথন এম্বেড করার সময়, সিআই বা সি ++ অ্যাপ্লিকেশনটিতে পাইথন এম্বেড করার সময় আপনি ঠিক একইভাবে জিআইএল পরিচালনা করতে হবে।
Python.Runtimeনেমস্পেসের দ্বারা সরবরাহিত যেকোন অবজেক্ট বা API এর সাথে
কথোপকথনের আগে, কলিং কোডটি PythonEngine.AcquireLockপদ্ধতিটি কল করে অবশ্যই পাইথন গ্লোবাল ইন্টারপ্রেটার লকটি অর্জন করতে হবে
। এই নিয়মের একমাত্র ব্যতিক্রম PythonEngine.Initializeপদ্ধতি হ'ল
জিআইএল অর্জন না করেই স্টার্টআপে ডাকা যেতে পারে।
পাইথন এপিআই ব্যবহার করা শেষ হলে, পরিচালিত কোড অবশ্যই PythonEngine.ReleaseLockজিআইএল প্রকাশের জন্য সংশ্লিষ্ট কল করতে হবে
এবং অন্যান্য থ্রেডগুলিকে পাইথন ব্যবহার করার অনুমতি দেবে।
AcquireLockএবং ReleaseLock
পদ্ধতি অপরিচালিত উপর পাতলা চাদরে হয় PyGILState_Ensureএবং
PyGILState_Releaseপাইথন API থেকে ফাংশন, এবং যারা API গুলির জন্য ডকুমেন্টেশন পরিচালিত সংস্করণ ক্ষেত্রে প্রযোজ্য।
আর একটি বিষয় আইডিই সমর্থন। আয়রন পাইথনের তুলনায় সিপাইথনের সম্ভবত বর্তমানে আইডিই সমর্থন আরও ভাল - তাই এটি একে অপরের থেকে একটি বাছাইয়ের কারণ হতে পারে।