Zijn semaforen draad veilig?

Inhoudsopgave:

Zijn semaforen draad veilig?
Zijn semaforen draad veilig?
Anonim

Semaphores zijn thread-safe zoals uitgelegd in de javadoc: Geheugenconsistentie-effecten: acties in een thread voordat een "release"-methode wordt aangeroepen, zoals release-before-acties na een succesvolle "acquire"-methode, zoals verwerven in een andere thread. De meeste bewerkingen op de objecten in de java.

Beletten semaforen ras?

Nee, de vergrendelingsoperaties gebeuren atomair. De gehele vergrendelde zijn zal niet atomair worden uitgevoerd. En onthoud, threads delen een gemeenschappelijke adresruimte en zijn allemaal gebonden aan een proces.

Is het gebruik van threads veilig?

Een MessageService-object is in feite onveranderlijk, omdat de status ervan niet kan veranderen na de constructie ervan. Daarom is het draadveilig. Bovendien, als MessageService eigenlijk veranderbaar zou zijn, maar meerdere threads hebben er alleen-lezen toegang toe, dan is het ook thread-safe.

Is thread veilig en gesynchroniseerd?

Thread safe betekent: methode wordt veilig om door meerdere threads tegelijkertijd te worden benaderd. synchronized keyword is een van de manieren om 'thread safe' te bereiken. Maar onthoud: eigenlijk, terwijl meerdere threads toegang proberen te krijgen tot de gesynchroniseerde methode, volgen ze de volgorde zodat ze veilig worden om toegang te krijgen.

Zijn semaforen eerlijk?

Over het algemeen moeten semaforen die worden gebruikt om de toegang tot bronnen te controleren, worden geïnitialiseerd als redelijk, om ervoor te zorgen dat geen enkele thread wordt uitgehongerd om toegang te krijgen tot een bron. Tijdens gebruiksemaforen voor andere soorten synchronisatiecontrole, wegen de doorvoervoordelen van niet-eerlijke bestellen vaak zwaarder dan billijkheidsoverwegingen.

Aanbevolen: