একটি সিঙ্ক্রোনাইজড ৷ ব্লক করুন কোডের একটি অংশ যা পদ্ধতির কোনো নির্দিষ্ট সংস্থানে সিঙ্ক্রোনাইজেশন করতে ব্যবহার করা যেতে পারে। একটি সিঙ্ক্রোনাইজড ব্লক কোনো শেয়ার্ড রিসোর্সের জন্য কোনো বস্তুকে লক করতে ব্যবহৃত হয় এবং একটি সিঙ্ক্রোনাইজড ব্লকের সুযোগ সিঙ্ক্রোনাইজড পদ্ধতি থেকে ছোট .
সিনট্যাক্স
সিঙ্ক্রোনাইজড(অবজেক্ট) {// কোডের ব্লক
এখানে, একটি অবজেক্ট সিঙ্ক্রোনাইজ করা বস্তুর একটি রেফারেন্স। একটি সিঙ্ক্রোনাইজড ব্লক নিশ্চিত করে যে একটি পদ্ধতিতে একটি কল যা একটি বস্তুর সদস্য, শুধুমাত্র বর্তমান থ্রেডটি বস্তুর মনিটরে সফলভাবে প্রবেশ করার পরেই ঘটে৷
উদাহরণ
<প্রি>ক্লাস টিকেট কাউন্টার { int available আসন =2; void bookTicket(স্ট্রিং নাম, int numberOfSeats) { if((availableSeats>=numberOfSeats) &&(numberOfSeats> 0)) { System.out.println(name+" :"+ numberOfSeats + "সিট বুকিং সাকসেস"); উপলব্ধ আসন -=numberOfSeats; } অন্য { System.out.println(নাম +" :আসন উপলব্ধ নয়"); } }} ক্লাস টিকিটবুকিং থ্রেড থ্রেড প্রসারিত করে { TicketCounter tc; স্ট্রিং নাম; int আসন; টিকিটবুকিং থ্রেড(টিকিটকাউন্টার tc, স্ট্রিং নাম, int আসন) { this.tc =tc; this.name =নাম; this.seats =আসন; } পাবলিক ভ্যায়েড রান() { সিঙ্ক্রোনাইজড(টিসি) {// সিঙ্ক্রোনাইজড ব্লক tc.book টিকেট (নাম, আসন); } }} পাবলিক ক্লাস সিঙ্ক্রোনাইজডব্লকটেস্ট { পাবলিক স্ট্যাটিক ভ্যায়েড মেইন(স্ট্রিং[] আর্গস) { টিকেট কাউন্টার টিসি =নতুন টিকেট কাউন্টার(); টিকিটবুকিং থ্রেড t1 =নতুন টিকিটবুকিং থ্রেড(tc, "Adithya", 2); টিকিটবুকিং থ্রেড t2 =নতুন টিকিটবুকিং থ্রেড(tc, "জয়", 2); t1.start(); t2.start(); }}আউটপুট
আদিত্য :2টি আসন বুকিং সফল জয় :আসন উপলব্ধ নেই