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).

527
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 esteja sendo...

181
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...

123
O que significa threadsafe?

Recentemente, tentei acessar uma caixa de texto de um thread (que não seja o thread da interface do usuário) e uma exceção foi lançada. Ele dizia algo sobre o "código não ser seguro para threads" e, por isso, acabei escrevendo um delegado (exemplo do MSDN ajudou) e ligando para ele. Mas mesmo...

122
Propriedade Thread-safe List <T>

Eu quero uma implementação de List<T>como uma propriedade que pode ser usada com segurança em thread sem qualquer dúvida. Algo assim: private List<T> _list; private List<T> MyT { get { // return a copy of _list; } set { _list = value; } } Parece que ainda preciso retornar...