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