Articles of synchronization

Posso usar __syncthreads () depois de ter descartado threads?

É seguro usar __syncthreads() em um bloco onde eu propositalmente __syncthreads() threads usando return ? A documentação afirma que __syncthreads() deve ser chamado por cada thread no bloco, ou então levará a um deadlock, mas na prática eu nunca experimentei tal comportamento. Código de amostra: __global__ void kernel(float* data, size_t size) { // Drop excess […]

Sincronizando em um valor inteiro

Duplicar Possível: Qual é a melhor maneira de aumentar o número de bloqueios em java Suponha que eu queira bloquear com base em um valor de id inteiro. Nesse caso, há uma function que extrai um valor de um cache e faz uma recuperação / armazenamento razoavelmente cara no cache, se o valor não estiver […]

Bloqueio verificado duplo Java

Eu me deparei com um artigo discutindo recentemente o duplo padrão de bloqueio verificado em Java e suas armadilhas e agora eu estou querendo saber se uma variante desse padrão que eu tenho usado há anos está sujeita a quaisquer problemas. Eu olhei para muitos posts e artigos sobre o assunto e entendi os possíveis […]

Os sequenciadores estáticos Java estão seguros?

Eu estou usando um bloco de código estático para inicializar alguns controladores em um registro que eu tenho. Minha pergunta é, portanto, posso garantir que este bloco de código estático será chamado apenas uma vez quando a class for carregada pela primeira vez? Eu entendo que não posso garantir quando este bloco de código será […]

Como faço para o meu ArrayList Thread-Safe? Outra abordagem para o problema em Java?

Eu tenho um ArrayList que eu quero usar para manter os objects RaceCar que estendem a class Thread assim que eles terminam de executar. Uma class, chamada Race, manipula essa ArrayList usando um método de retorno de chamada que o object RaceCar chama quando a execução é concluída. O método de retorno de chamada, addFinisher […]

Versão c # da palavra-chave sincronizada do java?

O c # tem sua própria versão da palavra-chave “sincronizada” do java? Ou seja, em java pode ser especificado para uma function, um object ou um bloco de código, da seguinte forma: public synchronized void doImportantStuff() { // dangerous code goes here. } ou public void doImportantStuff() { // trivial stuff synchronized(someLock) { // dangerous […]

Exemplo de Mutex / tutorial?

Eu sou novo em multithreading e estava tentando entender como os mutexes funcionam. Fiz muita pesquisa no Google e encontrei um tutorial decente , mas ainda deixei algumas dúvidas sobre como funciona porque criei meu próprio programa em que o bloqueio não funcionava. Uma syntax absolutamente não intuitiva do mutex é pthread_mutex_lock( &mutex1 ); , […]

Como sincronizar uma variável estática entre segmentos executando diferentes instâncias de uma class em Java?

Eu sei que usando a palavra synchronize chave synchronize antes de um método traz a synchronization para esse object. Ou seja, 2 threads executando a mesma instância do object serão sincronizados. No entanto, como a synchronization está no nível do object, dois encadeamentos que executam instâncias diferentes do object não serão sincronizados. Se tivermos uma […]

Sincronização vs Bloqueio

java.util.concurrent API java.util.concurrent fornece uma class chamada Lock , que basicamente serializaria o controle para acessar o recurso crítico. Dá método como park() e unpark() . Podemos fazer coisas semelhantes se pudermos usar palavras synchronized chave synchronized e usando os methods wait() e notify() notifyAll() . Eu estou querendo saber qual destes é melhor na […]

Como o bloqueio funciona exatamente?

Eu vejo que, para usar objects que não são thread-safe, 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 segmentos acessam o mesmo código (vamos supor que ele esteja sendo executado em um aplicativo […]