სემფორები უსაფრთხო ძაფისთვის, როგორც ეს ახსნილია javadoc-ში: მეხსიერების თანმიმდევრულობის ეფექტები: მოქმედებები ძაფში, სანამ გამოიძახებთ "გამოშვების" მეთოდს, როგორიცაა გამოშვება ხდება-სანამ ქმედებების შემდეგ წარმატებული "შეძენის" მეთოდი, როგორიცაა შეძენა სხვა თემაში. ოპერაციების უმეტესობა java-ში არსებულ ობიექტებზე.
აფერხებს სემაფორები რასას?
არა, ჩაკეტვის ოპერაციები ხდება ატომურად. მთელი ჩაკეტილი არ იქნება შესრულებული ატომურად. და დაიმახსოვრეთ, ძაფებს აქვთ საერთო მისამართების სივრცე და ყველა დაკავშირებულია პროცესთან.
საფრთხის გამოყენება უსაფრთხოა?
A MessageService ობიექტი არის ფაქტობრივად უცვლელი, რადგან მისი მდგომარეობა ვერ შეიცვლება მისი აგების შემდეგ. აქედან გამომდინარე, ის უსაფრთხოა ძაფისთვის. უფრო მეტიც, თუ MessageService იყო რეალურად ცვალებადი, მაგრამ რამდენიმე თემას აქვს მხოლოდ წაკითხვის წვდომა მასზე, ის ასევე უსაფრთხოა ნაკადისთვის.
არის თემა უსაფრთხო და სინქრონიზებული?
Thread-ის უსაფრთხო საშუალება: მეთოდი ხდება უსაფრთხო წვდომისათვის რამდენიმე ძაფით ერთდროულად უპრობლემოდ. სინქრონიზებული საკვანძო სიტყვა არის ერთ-ერთი გზა, რათა მივაღწიოთ "ნაკადის უსაფრთხოებას". მაგრამ დაიმახსოვრე: სინამდვილეში, სანამ მრავალი თემა ცდილობს სინქრონიზებულ მეთოდზე წვდომას, ისინი მიჰყვებიან თანმიმდევრობას, ასე რომ წვდომა უსაფრთხო ხდება.
სამართლიანია თუ არა სემაფორები?
ზოგადად, სემფორები, რომლებიც გამოიყენება რესურსზე წვდომის გასაკონტროლებლად, უნდა იყოს ინიციალიზებული, როგორც სამართლიანი, რათა უზრუნველყოფილი იყოს, რომ არცერთი ძაფი არ დაიკარგება რესურსზე წვდომისგან. გამოყენებისასსემაფორები სხვა სახის სინქრონიზაციის კონტროლისთვის, არასამართლიანი შეკვეთის გამტარუნარიანობის უპირატესობები ხშირად აღემატება სამართლიანობის მოსაზრებებს.