Articles of mutex

O que é um mutex?

Um mutex é um conceito de programação que é freqüentemente usado para resolver problemas de multi-threading. Minha pergunta para a comunidade: O que é um mutex e como você o usa?

Está usando um Mutex para evitar que várias instâncias do mesmo programa sejam executadas com segurança?

Estou usando este código para impedir que uma segunda instância do meu programa seja executada ao mesmo tempo, é seguro? Mutex appSingleton = new System.Threading.Mutex(false, “MyAppSingleInstnceMutx”); if (appSingleton.WaitOne(0, false)) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); appSingleton.Close(); } else { MessageBox.Show(“Sorry, only one instance of MyApp is allowed.”); } Estou preocupado que, se algo lançar uma exceção […]

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 ); , […]

Chamando pthread_cond_signal sem bloquear mutex

Eu li em algum lugar que devemos bloquear o mutex antes de chamar pthread_cond_signal e desbloquear o texto depois de chamá-lo: A rotina pthread_cond_signal () é usada para sinalizar (ou ativar) outro thread que está aguardando a variável condition. Ele deve ser chamado depois que o mutex é bloqueado e deve desbloquear o mutex para […]

Bloqueio Recursivo (Mutex) vs Bloqueio Não Recursivo (Mutex)

POSIX permite que mutexes sejam recursivas. Isso significa que o mesmo thread pode bloquear o mesmo mutex duas vezes e não ficará bloqueado. Claro que também precisa desbloqueá-lo duas vezes, caso contrário, nenhum outro segmento pode obter o mutex. Nem todos os sistemas que suportam pthreads também suportam mutexes recursivas, mas se eles querem estar […]

Por que as funções variables ​​da condição dos pthreads requerem um mutex?

Estou lendo em pthread.h ; as funções relacionadas à variável de condição (como pthread_cond_wait(3) ) requerem um mutex como um argumento. Por quê? Tanto quanto eu posso dizer, eu vou estar criando um mutex apenas para usar como esse argumento? O que é que esse mutex deveria fazer?

Exemplo para aumentar shared_mutex (múltiplas leituras / uma gravação)?

Eu tenho um aplicativo multithread que tem que ler alguns dados com freqüência e, ocasionalmente, que os dados são atualizados. Agora um mutex mantém o access a esses dados seguros, mas é caro porque eu gostaria que vários threads pudessem ler simultaneamente e bloqueá-los apenas quando uma atualização fosse necessária (o thread de atualização poderia […]

Qual é a maneira correta de criar um aplicativo de instância única?

Usando C # e WPF em .NET (em vez de Windows Forms ou console), qual é a maneira correta de criar um aplicativo que só pode ser executado como uma única instância? Eu sei que tem algo a ver com alguma coisa mítica chamada mutex, raramente consigo encontrar alguém que se incomode em parar e […]