জাভা প্রোগ্রামিং ভাষাতে থ্রেড প্রোগ্রামিংয়ের ওপর একটি বই লিখেছেন আ ন ম বজলুর রহমান। প্রোগ্রামারদের কেন থ্রেড প্রোগ্রামিং সম্পর্কে জানা উচিত, সেই প্রশ্নের জবাবে তাঁর এই লেখা।
কেনো থ্রেড প্রোগ্রামিং সম্পর্কে ধারণা রাখা উচিৎ?
আমরা এমন একটা সময়ে বসবাস করছি যখন কম্পিউটারের প্রসেসরের গতি আর আগের মতো বাড়ছে না। কিন্তু কম্পিউটিংয়ের ক্রমবর্ধমান চাহিদা মেটাতে এই সীমাবদ্ধতা আমাদের মেনে নেওয়ার উপায়ও নেই। এই সমস্যা সমাধানে কম্পিউটারের চিপ বা প্রসেসর মেনুফেকচারিং ইন্ডাস্ট্রি একটি নতুন উপায় বেছে নিয়েছে। এটি হলো- একটি কম্পিউটারে একাধিক প্রসেসর বা সিপিইউ স্থাপন করা। আমরা যে কম্পিউটারগুলো এখন ব্যবহার করি তার প্রতিটিতেই একাধিক সিপিইউ বা প্রসেসর রয়েছে।
এই একাধিক প্রসসের বা সিপিইউয়ের সুবিধাটুকু আমরা তখনই নিতে পারি, যখন এগুলোকে একই সঙ্গে বিভিন্ন কাজে ব্যবহার করতে পারি। যদি সেই সুযোগটা নিতে না পারি, তাহলে আমাদের কম্পিউটারে যে অতিরিক্ত রিসোর্স রাখা আছে, তার অপচয়ই করা হবে বটে।
এই অপচয় রোধ এবং একাধিক প্রসেসর ব্যবহারের জন্য আমাদের প্রোগ্রামিংয়ের ধরণেরও পরিবর্তন দরকার। এ জন্য প্রায় প্রতিটি সিরিয়াস প্রোগ্রামিং ল্যাংগুয়েজে মাল্টিথ্রেডিং বা কনকারেন্ট প্রোগ্রামিংয়ের সুবিধা রয়েছে। এই মাল্টথ্রেডিং প্রোগ্রামিং ব্যবহার করে আমরা একই সঙ্গে একাধিক সিপিইউ বা প্রসেসর ব্যবহার করে অনেকগুলো একই সঙ্গে করতে পারি এবং অনেক ক্ষেত্রে অনেক কাজ দ্রুত করে ফেলতে পারি।
উদাহরণ হিসেবে বলা যায়, আমরা যারা ওয়েব অ্যাপ্লিকেশন ব্যবহার করি এবং ওয়েব প্রোগ্রামিং করি, তারা জানি যে, একটি সার্ভারে একই সঙ্গে একই মুহূর্তে অসংখ্য রিকোয়েস্ট আসে এবং ওয়েব সার্ভার এগুলো খুব ভালোভাবেই সার্ভ করে। এই কাজটি সম্ভব হয়েছে একাধিক থ্রেড ব্যবহারের ফলে। থ্রেডকে আমরা বলতে পারি একটি ফ্লো বা ধারার মতো, অর্থাৎ কম্পিউটারে প্রোগ্রাম এক্সিকিউশনের একটি ফ্লো। নতুন একটি থ্রেড তৈরি করা মানে, নতুন একটি ফ্লো তৈরি করা। আমাদের সবার বাসায় একাধিক পানির কল আছে। যদিও পানিগুলো একটি ট্যাঙ্ক থেকেই আসে, কিন্তু একাধিক পানির কল থাকায় একাধিক মানুষ একই সঙ্গে ব্যবহার করতে পারে। একটি কল থাকলে একজন ব্যবহারের সময় বাকিদের অপেক্ষা করতে হতো এবং এতে সময়ের অপচয় হতো। একইভাবে কম্পিউটারে থ্রেড কাজ করার জন্য একাধিক ধারা বা ফ্লো তৈরি করতে পারে এবং এর ফলে একই সময়ে একাধিক কাজ একই সঙ্গে এগিয়ে নিয়ে যাওয়া যায়।
আমরা যারা জাভা প্রোগ্রামিং পারি, তারা সহজেই এই মাল্টি থ্রেড প্রোগ্রামিংয়ের সুবিধাটুকু নিতে পারি, যদি একটু কষ্ট করে এর মূলনীতি এবং কীভাবে ব্যবহার করতে হয় তা জেনে নেই।
লেখকঃ আ ন ম বজলুর রহমান, সফটওয়্যার প্রকৌশলী ও লেখক (জাভা প্রোগ্রামিং, জাভা থ্রেড প্রোগ্রামিং)।