Perguntas com a marcação «thread-safety»

Um pedaço de código é seguro para thread se ele apenas manipular estruturas de dados de uma forma que permita a execução consistente deste código por múltiplos threads. Um código pode ser thread-safe, condicionalmente seguro (exclusão mútua necessária) ou inseguro (só pode ser usado com segurança por um thread).



8
Como o bloqueio funciona exatamente?
Vejo que, ao usar objetos que não são seguros para threads, envolvemos o código com um bloqueio como este: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } Então, o que acontece quando vários threads acessam o mesmo código (vamos supor que ele …

3
Casos de uso para planejadores RxJava
No RxJava, existem 5 agendadores diferentes para você escolher: imediato () : cria e retorna um agendador que executa o trabalho imediatamente no segmento atual. trampolim () : cria e retorna um agendador que enfileira o trabalho no encadeamento atual a ser executado após a conclusão do trabalho atual. newThread …

7
O que exatamente é uma função reentrante?
A maioria dos os tempos , a definição de reentrada é citado de Wikipedia : Um programa ou rotina de computador é descrito como reentrante, se puder ser chamado com segurança novamente antes que sua chamada anterior seja concluída (isto é, pode ser executada com segurança simultaneamente). Para reentrar, um …


7
Queue.Queue vs. collections.deque
Preciso de uma fila na qual vários threads possam colocar coisas e vários threads possam ler. O Python possui pelo menos duas classes de fila, Queue.Queue e collections.deque, sendo que o primeiro parece usar o último internamente. Ambos afirmam ser seguros para threads na documentação. No entanto, os documentos da …


4
O que torna um método seguro para threads? Quais são as regras?
Existem regras / diretrizes gerais para o que torna um método seguro para threads? Entendo que provavelmente há um milhão de situações pontuais, mas e em geral? Isso é simples? Se um método acessa apenas variáveis ​​locais, é seguro para threads. É isso? Isso também se aplica a métodos estáticos? …
156 c#  thread-safety 

5
O segmento de valores ConcurrentHashMap iterativo é seguro?
No javadoc para ConcurrentHashMap, é o seguinte: As operações de recuperação (incluindo get) geralmente não são bloqueadas, portanto, podem se sobrepor às operações de atualização (incluindo colocar e remover). As recuperações refletem os resultados das operações de atualização concluídas mais recentemente, mantidas após o início. Para operações agregadas, como putAll …

5
HashSet simultâneo <T> no .NET Framework?
Eu tenho a seguinte turma. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); } Preciso alterar o campo "Dados" de diferentes threads, portanto, gostaria de algumas opiniões sobre minha implementação atual segura de thread. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); public void Add(string Val){ lock(Data) Data.Add(Val); } public …


5
Os métodos estáticos não sincronizados são seguros para threads se não modificarem variáveis ​​de classe estática?
Eu queria saber se você tem um método estático que não é sincronizado, mas não modifica nenhuma variável estática, é seguro para threads? E se o método criar variáveis ​​locais dentro dele? Por exemplo, o código a seguir é seguro para threads? public static String[] makeStringArray( String a, String b …


4
É possível usar a instância do Gson como um campo estático em um bean de modelo (reutilização)?
Aqui está o modelo que eu implementei: public class LoginSession { private static final Gson gson = new Gson(); private String id; private String name; private long timestamp; public LoginSession(String id, String name) { this.id = id; this.name = name; this.timestamp = System.currentTimeMillis(); } public String toJson() { return gson.toJson(this); …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.