জাভাতে কলেকশন হলো সবচেয়ে গুরুত্বপূর্ণ কনসেপ্টগুলোর একটি, যা Java-কে নিজে একটি শক্তিশালী ল্যাঙ্গুয়েজ বানায়। কলেকশন সাপোর্টের কারণে Java যেকোনো ধরনের ডেটা সুবিধাজনক ও কার্যকরভাবে হ্যান্ডেল করতে পারে এবং CRUD অপারেশনগুলো স্মুথলি সম্পাদন করতে পারে।
কিন্তু মাল্টি-থ্রেডিং এনভায়রনমেন্টে কলেকশন এক্সপোজ হওয়ার সাথে সাথে এর পারফরম্যান্স কিছুটা ডিগ্রেড হয়, কারণ ট্রেডিশনাল কলেকশনগুলো মাল্টি-থ্রেডিং এনভায়রনমেন্ট সাপোর্ট করতে সক্ষম নয়। এই সীমাবদ্ধতা দূর করতে Java কনকারেন্ট কলেকশন চালু করে, যা শুধু মাল্টি-থ্রেডিং সীমাবদ্ধতা দূর করে না বরং একাধিক থ্রেডের সাথে ডেটা হ্যান্ডলিং-এ Java-এর পারফরম্যান্সও বাড়ায়।
ট্রেডিশনাল কলেকশন এবং কনকারেন্ট কলেকশনের মধ্যে গুরুত্বপূর্ণ পার্থক্য
| ক্র. নং | কী | ট্রেডিশনাল কলেকশন | কনকারেন্ট কলেকশন |
|---|---|---|---|
| ১ | থ্রেড সেফটি (Thread Safety) | Java Collections-এর ক্লাসিক ক্লাসগুলো (ArrayList, LinkedList, HashMap ইত্যাদি) অধিকাংশই নন-সিঙ্ক্রোনাইজড এবং মাল্টি-থ্রেডিং এনভায়রনমেন্টে থ্রেড-সেফ নয়। | Java কনকারেন্ট কলেকশনে সেম ক্লাসগুলো সিঙ্ক্রোনাইজেশন ইমপ্লিমেন্ট করে প্রদান করে, যা এগুলোকে সিঙ্ক্রোনাইজড এবং থ্রেড-সেফ করে তোলে। |
| ২ | লকিং মেকানিজম (Locking Mechanism) | ট্রেডিশনাল কলেকশনে কিছু সিঙ্ক্রোনাইজড ক্লাস আছে (যেমন Vector, Stack) কিন্তু এগুলো পুরো কলেকশনের ওপর লক দেয়, যা পারফরম্যান্স ও এক্সিকিউশন স্পিড কমিয়ে দেয়। | কনকারেন্ট কলেকশন পার্শিয়াল লকিং (partial locking) কনসেপ্ট আনে, যেখানে মাল্টি-থ্রেডিং এনভায়রনমেন্টে কলেকশনের শুধু নির্দিষ্ট অংশ লক হয়, ফলে পারফরম্যান্স ও স্পিড বাড়ে। |
| ৩ | রানটাইম এক্সেপশন (Runtime Exception) | ট্রেডিশনাল কলেকশনে যদি ইটারেশন চলাকালীন আলাদা থ্রেড থেকে কলেকশন মডিফাই করা হয়, তবে ConcurrentModificationException ফেলে। | কনকারেন্ট কলেকশনে এমন এক্সেপশন আসে না; ইটারেশন চলাকালীন কলেকশন মডিফাই করা যায়। |
| ৪ | वरीয়তা (Preference) | উপরোক্ত কারণগুলো থেকে ট্রেডিশনাল কলেকশন মাল্টি-থ্রেডিং এনভায়রনমেন্টে প্রিফার্ড নয়। | কনকারেন্ট কলেকশন মাল্টি-থ্রেডিং এনভায়রনমেন্টে প্রধানত প্রিফার্ড। |
| ৫ | বাজারে প্রবর্তন | ট্রেডিশনাল কলেকশন Java-র লিগেসি কলেকশন এবং কনকারেন্ট কলেকশনের আগে প্রবর্তিত। | কনকারেন্ট কলেকশন JDK 1.5-এ প্রবর্তিত, অর্থাৎ ট্রেডিশনাল কলেকশনের পরে। |