Articles of multithreading

Quando usar um loop Parallel.ForEach em vez de um foreach regular?

Estou um pouco confuso sobre Parallel.ForEach . O que é Parallel.ForEach e o que isso faz exatamente? Por favor, não faça referência a nenhum link do MSDN. Aqui está um exemplo simples: string[] lines = File.ReadAllLines(txtProxyListPath.Text); List list_lines = new List(lines); foreach (string line in list_lines) { //My Stuff } Como posso rewrite este exemplo […]

Por que usar um ReentrantLock se alguém pode usar sincronizado (isso)?

Eu estou tentando entender o que torna o bloqueio em simultaneidade tão importante se alguém pode usar synchronized (this) . No código fictício abaixo, posso fazer o seguinte: sincronizou todo o método ou sincronizou a área vulnerável (sincronizada (isto) {…}) OU bloqueie a área de código vulnerável com um ReentrantLock. Código: private final ReentrantLock lock […]

Se os threads compartilham o mesmo PID, como eles podem ser identificados?

Eu tenho uma consulta relacionada à implementação de threads no Linux. O Linux não possui suporte explícito a threads. No userspace, podemos usar uma biblioteca de threads (como o NPTL) para criar threads. Agora, se usarmos o NPTL, ele suportará o mapeamento 1: 1. O kernel usará a function clone() para implementar threads. Suponha que […]

System.Windows.Threading.Dispatcher e WinForms?

Um System.Windows.Threading.Dispatcher funciona no thread de interface do usuário de um aplicativo WinForms ? Se sim, porque? Ele está vindo de WindowsBase.dll, que parece ser um componente do WPF . Se não, como posso invocar unidades de trabalho de volta para o thread de interface do usuário? Eu encontrei Control.BeginInvoke() , mas parece desajeitado para […]

Os arrays de matrizes C # são seguros?

Em particular Crie uma function para obter uma matriz e um índice como parâmetros. Crie uma matriz de elementos. Crie um loop de contagem. Dentro do loop em um novo thread, atribua uma nova instância do object ao array usando o indexador passado. Eu sei como gerenciar os tópicos etc. Estou interessado em saber se […]

Encadeamento de barra de progresso MVC

Estou usando um padrão MVC para meu design, quando um usuário pressiona o botão de pesquisa, eu chamo uma pesquisa no modelo, mas também quero atualizar uma barra de progresso com informações retornadas desse modelo. Eu tentei usar um swingworker, mas a barra de progresso não é atualizada. Eu suspeito que estou fazendo algo errado […]

Java: iniciando um novo encadeamento em um construtor

Por que está iniciando um novo encadeamento em um construtor desaprovado em Java (ou em qualquer outro lugar). Estou recebendo avisos do Netbeans por fazer isso, mas não está me dando nenhuma sugestão de refatoração. Estou escrevendo um aplicativo cliente / servidor Swing, e o segmento que estou iniciando está no construtor JFrame do servidor, […]

Está acessando uma variável em C # uma operação atômica?

Fui criado para acreditar que, se vários encadeamentos puderem acessar uma variável, todas as leituras e gravações dessa variável deverão ser protegidas pelo código de synchronization, como uma instrução “lock”, porque o processador pode alternar para outro encadeamento na metade uma gravação. No entanto, eu estava procurando através de System.Web.Security.Membership usando Reflector e encontrei o […]

std :: thread pass por construtor de cópia de chamadas de referência

Bem, eu tenho um problema com a passagem de dados em um segmento usando std :: thread. Eu pensei que eu entendi a semântica geral de construtores de cópia, etc, mas parece que eu não entendo muito bem o problema. Eu tenho uma class simples chamada Log que escondeu seu construtor de cópia assim: class […]

‘using’ statement vs ‘try finally’

Eu tenho um monte de propriedades que eu vou usar bloqueios de leitura / gravação. Eu posso implementá-las com uma try finally ou uma cláusula using . Na try finally eu iria adquirir o bloqueio antes da try e liberar no finally . Na cláusula using , eu criaria uma class que adquire o bloqueio […]