Os semáforos são seguros para threads?

Os semáforos são seguros para threads?
Os semáforos são seguros para threads?
Anonim

Semáforos são thread-safe conforme explicado no javadoc: Efeitos de consistência de memória: Ações em um encadeamento antes de chamar um método de "liberação", como ações de liberação acontecer antes de um método "adquirir" bem-sucedido, como adquirir em outro segmento. A maioria das operações nos objetos no java.

Os semáforos impedem a corrida?

Não, as operações de bloqueio ocorrem atomicamente. Toda a área bloqueada não será executada atomicamente. E lembre-se, os encadeamentos compartilham um espaço de endereço comum e estão todos vinculados a um processo.

O uso de thread é seguro?

Um objeto MessageService é efetivamente imutável, pois seu estado não pode ser alterado após sua construção. Portanto, é thread-safe. Além disso, se MessageService fosse realmente mutável, mas vários encadeamentos tivessem acesso somente leitura a ele, também seria seguro para encadeamentos.

O encadeamento é seguro e sincronizado?

Thread safe significa: o método se torna seguro para ser acessado por vários threads sem nenhum problema ao mesmo tempo. palavra-chave sincronizada é uma das maneiras de alcançar 'thread safe'. Mas Lembre-se: Na verdade, enquanto vários threads tentam acessar o método sincronizado, eles seguem a ordem, tornando o acesso seguro.

Os semáforos são justos?

Geralmente, semáforos usados para controlar o acesso ao recurso devem ser inicializados como justo, para garantir que nenhuma thread fique sem acesso a um recurso. Ao usarsemáforos para outros tipos de controle de sincronização, as vantagens de taxa de transferência de ordenação não justa geralmente superam as considerações de justiça.

Recomendado: