Semaphores ay thread safe gaya ng ipinaliwanag sa javadoc: Memory consistency effects: Mga aksyon sa isang thread bago tumawag ng isang "release" na paraan tulad ng release mangyari-bago ang mga aksyon kasunod ng isang matagumpay na "acquire" na paraan tulad ng pagkuha sa ibang thread. Karamihan sa mga pagpapatakbo sa mga bagay sa java.
Pinipigilan ba ng mga semaphor ang lahi?
Hindi, ang mga pagpapatakbo ng pag-lock ay nagaganap nang atomically. Ang buong naka-lock ay hindi isasagawa nang atomically. At tandaan, ang mga thread ay nagbabahagi ng isang karaniwang address-space at lahat ay nakasalalay sa isang proseso.
Ligtas ba ang paggamit ng thread?
Ang
A MessageService object ay epektibong hindi nababago dahil hindi na mababago ang estado nito pagkatapos nitong itayo. Samakatuwid, ito ay ligtas sa thread. Higit pa rito, kung ang MessageService ay talagang nababago, ngunit maraming thread ang may read-only na access dito, ito ay thread-safe rin.
Ligtas at naka-synchronize ba ang thread?
Ang ibig sabihin ng
Thread safe: ang paraan ay nagiging ligtas na ma-access ng maramihang mga thread nang walang anumang problema sa parehong oras. Ang naka-synchronize na keyword ay isa sa paraan upang makamit ang 'thread safe'. Ngunit Tandaan: Sa totoo lang, habang sinusubukan ng maraming thread na i-access ang naka-synchronize na paraan, sinusunod nila ang utos kaya nagiging ligtas na ma-access.
Patas ba ang mga semaphore?
Sa pangkalahatan, ang semaphore na ginamit upang kontrolin ang pag-access sa mapagkukunan ay dapat na masimulan bilang patas, upang matiyak na walang thread ang nagutom sa pag-access sa isang mapagkukunan. Kapag gumagamitsemaphores para sa iba pang mga uri ng kontrol sa pag-synchronize, ang throughput na mga bentahe ng hindi patas na pag-order ay kadalasang mas malaki kaysa sa mga pagsasaalang-alang sa pagiging patas.