Semaforer er thread safe som forklart i javadoc: Minnekonsistenseffekter: Handlinger i en tråd før du kaller en "frigjør"-metode, for eksempel frigjøring skjer før handlinger etter en vellykket "acquire"-metode som for eksempel skaffe i en annen tråd. De fleste operasjoner på objektene i java.
Forhindrer semaforer rase?
Nei, låseoperasjonene skjer atomisk. Hele den låste enheten vil ikke bli utført atomisk. Og husk, tråder deler et felles adresseområde og er alle bundet til en prosess.
Er det trygt å bruke tråd?
A MessageService-objekt er i praksis uforanderlig siden tilstanden ikke kan endres etter konstruksjonen. Derfor er den trådsikker. Dessuten, hvis MessageService faktisk var mutable, men flere tråder bare har skrivebeskyttet tilgang til den, er den også trådsikker.
Er tråden trygg og synkronisert?
Trådsikker betyr: metoden blir trygg for å få tilgang til flere tråder uten problemer samtidig. synkronisert søkeord er en av måtene å oppnå "trådsikker" på. Men husk: Selv om flere tråder prøver å få tilgang til synkronisert metode, følger de rekkefølgen, så de blir trygge å få tilgang til.
Er semaforer rettferdige?
Generelt bør semaforer som brukes til å kontrollere ressurstilgang, initialiseres som rettferdige, for å sikre at ingen tråder sultes ut fra å få tilgang til en ressurs. Når du brukersemaforer for andre typer synkroniseringskontroll, gjennomstrømsfordelene ved ikke-rettferdig bestilling oppveier ofte rettferdighetshensyn.