Семафорууд нь javadoc-д тайлбарласны дагуу thread-д аюулгүй байдаг: Санах ойн тууштай байдлын нөлөө: "суллах" аргыг дуудахын өмнөх үйлдлүүд, тухайлбал, гарахаас өмнөх үйлдлүүд өөр thread дээр олж авах гэх мэт амжилттай "олж авах" арга. Java дахь объектууд дээрх ихэнх үйлдлүүд.
Семафор нь уралдаанаас сэргийлдэг үү?
Үгүй, түгжих үйлдлүүд атомаар явагддаг. Бүх түгжээг атомаар гүйцэтгэхгүй. Утаснууд нь нийтлэг хаягийн орон зайг хуваалцаж, бүгд процесстой холбогддог гэдгийг санаарай.
Удааныг ашиглахад аюулгүй юу?
MessageService объект нь бүтээгдсэний дараа төлөв өөрчлөгдөх боломжгүй тул үр дүнтэй өөрчлөгдөх боломжгүй. Тиймээс энэ нь утастай холбоотой аюулгүй юм. Түүнээс гадна, хэрэв MessageService нь үнэхээр өөрчлөгдөх боломжтой байсан ч олон хэлхээс зөвхөн унших боломжтой байсан бол энэ нь хэлхээнд ч аюулгүй.
Утас нь аюулгүй бөгөөд синхрончлогдсон уу?
Thread safe гэдэг нь: арга нь нэг дор ямар ч асуудалгүйгээр олон урсгалаар хандахад аюулгүй болно гэсэн үг. синхрончлогдсон түлхүүр үг нь "thread safe"-д хүрэх арга замуудын нэг юм. Гэхдээ санаарай: Үнэндээ олон хэлхээ синхрончлогдсон аргад хандахыг оролдох үед тэд дарааллыг дагаж мөрддөг тул нэвтрэхэд аюулгүй болно.
Семафорууд шударга юу?
Ерөнхийдөө нөөцийн хандалтыг хянахад ашигладаг семафоруудыг шударга гэж эхлүүлэх хэрэгтэй бөгөөд ингэснээр ямар ч хэлхээг эх сурвалжид хандахаас сэргийлнэ. Ашиглах үедбусад төрлийн синхрончлолын хяналтын семафорууд, шударга бус захиалгын дамжуулах чадварын давуу тал нь шударга байдлын талаар бодохоос давж гардаг.