জাভাতে কোনও মুটেক্স অবজেক্ট আছে বা এটি তৈরির উপায় আছে? আমি জিজ্ঞাসা করছি কারণ 1 পারমিটের সাহায্যে আরম্ভ করা একটি সেমফোর অবজেক্ট আমাকে সাহায্য করে না। এই ক্ষেত্রেটি চিন্তা করুন:
try {
semaphore.acquire();
//do stuff
semaphore.release();
} catch (Exception e) {
semaphore.release();
}
প্রথম অর্জনে যদি কোনও ব্যতিক্রম ঘটে, তবে ক্যাচ ব্লকের রিলিজটি পারমিটগুলিকে বাড়িয়ে তুলবে, এবং সেমফোর আর বাইনারি সেমফোর হয় না।
সঠিক উপায় কি হবে?
try {
semaphore.acquire();
//do stuff
} catch (Exception e) {
//exception stuff
} finally {
semaphore.release();
}
উপরের কোডটি নিশ্চিত করবে যে সেমফোর বাইনারি হবে?