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