Semaforlar javadoc-da izah edildiyi kimi təhlükəsizdir: Yaddaş ardıcıllığı effektləri: "buraxılış" metodunu çağırmadan əvvəl başlıqdakı hərəkətlər, məsələn, buraxılış baş verməmişdən əvvəl edilən hərəkətlər başqa bir mövzuda əldə etmək kimi uğurlu "almaq" üsulu. Java-dakı obyektlər üzərində ən çox əməliyyatlar.
Semaforlar yarışın qarşısını alırmı?
Xeyr, kilidləmə əməliyyatları atomik şəkildə baş verir. Bütün kilidlənmişlər atomik olaraq icra edilməyəcək. Və unutmayın ki, başlıqlar ümumi ünvan məkanını paylaşır və hamısı prosesə bağlıdır.
İpdən istifadə təhlükəsizdir?
A MessageService obyekti faktiki olaraq dəyişməzdir, çünki onun vəziyyəti tikildikdən sonra dəyişə bilməz. Beləliklə, iplə təhlükəsizdir. Üstəlik, əgər MessageService həqiqətən dəyişkən olsaydı, lakin bir neçə başlıq ona yalnız oxumaq üçün giriş imkanına malikdirsə, o, həmçinin mövzu üçün təhlükəsizdir.
Mövzu təhlükəsizdir və sinxronlaşdırılır?
Thread təhlükəsiz deməkdir: metod eyni vaxtda heç bir problem olmadan birdən çox mövzuya daxil olmaq üçün təhlükəsiz olur. sinxronlaşdırılmış açar söz 'thread safe' əldə etməyin yollarından biridir. Ancaq unutmayın: Əslində birdən çox başlıq sinxronlaşdırılmış metoda daxil olmağa çalışsa da, onlar sıraya əməl edirlər, beləliklə, daxil olmaq təhlükəsiz olur.
Semaforlar ədalətlidirmi?
Ümumiyyətlə, resursa girişi idarə etmək üçün istifadə edilən semaforlar heç bir başlığın resursa daxil olmamasını təmin etmək üçün ədalətli kimi işə salınmalıdır. İstifadə edərkəndigər sinxronizasiya nəzarəti növləri üçün semaforlar, qeyri-ədalətli sifarişin məhsuldarlıq üstünlükləri çox vaxt ədalət mülahizələrindən üstündür.