Articles of mutex

Come viene implementato pthread_mutex_lock

Sono solo curioso di sapere come vengono implementate le funzioni relative alla sincronizzazione tra i thread all’interno di Unix. Ad esempio, cosa succede quando chiamo pthread_mutex_lock ? Ci sono dei puntatori in uso? Un riferimento al codice sorgente sarebbe davvero d’aiuto.

Quando usare il mutex ricorsivo?

Capisco che il mutex ricorsivo permetta al mutex di essere bloccato più di una volta senza arrivare a un punto morto e dovrebbe essere sbloccato lo stesso numero di volte. Ma in quali situazioni specifiche hai bisogno di usare un mutex ricorsivo? Sto cercando situazioni progettuali / a livello di codice.

I mutex pthread funzionano sui thread se nella memoria condivisa?

Ho trovato questo: metodo di sincronizzazione veloce dell’interprete Ero solito credere che un mutex pthread potesse essere condiviso solo tra due thread nello stesso spazio di indirizzamento . La domanda / risposte sembra implicare: Se ho due proceses separati A e B. Hanno una regione di memoria condivisa M. Posso inserire un mutex pThread in […]

Se sto usando i canali correttamente dovrei usare i mutex?

Se sto usando i canali correttamente, dovrei usare i mutex per proteggermi da accessi concorrenti?

Mappa con accesso concorrente

Quando si utilizza una mappa in un programma con accesso simultaneo, è necessario utilizzare un mutex nelle funzioni per leggere i valori?

Quanto è efficiente bloccare un mutex sbloccato? Qual è il costo di un mutex?

In un linguaggio di basso livello (C, C ++ o qualsiasi altra cosa): ho la possibilità di scegliere tra un gruppo di mutex (come quello che pthread mi dà o qualunque sia la libreria di sistema nativa) o uno singolo per un object. Quanto è efficace bloccare un mutex? Cioè quante istruzioni assembler ci sono […]

Equivalente a C ++ 11 per potenziare shared_mutex

Esiste un equivalente in C ++ 11 per boost::shared_mutex . O un’altra soluzione per gestire una situazione di più lettori / scrittori singoli in C ++ 11?

Perché il Mutex non viene rilasciato quando viene eliminato?

Ho il codice seguente: using (Mutex mut = new Mutex(false, MUTEX_NAME)) { if (mut.WaitOne(new TimeSpan(0, 0, 30))) { // Some code that deals with a specific TCP port // Don’t want this to run at the same time in another process } } Ho impostato un punto di interruzione all’interno del blocco if e ho […]

È ansible determinare il thread che contiene un mutex?

In primo luogo, uso la libreria pthread per scrivere il programma C multithreading. I fili erano sempre appesi ai loro mutex attesi. Quando uso l’utilità strace per trovare una discussione è nello stato FUTEX_WAIT , voglio sapere quale thread tiene quel mutex al momento. Ma non so come potrei farcela. Ci sono programmi di utilità […]

comprensione di pthread_cond_wait () e pthread_cond_signal ()

In generale, pthread_cond_wait() e pthread_cond_signal() sono chiamati come segue: //thread 1: pthread_mutex_lock(&mutex); pthread_cond_wait(&cond, &mutex); do_something() pthread_mutex_unlock(&mutex); //thread 2: pthread_mutex_lock(&mutex); pthread_cond_signal(&cond); pthread_mutex_unlock(&mutex); I passaggi sono pthread_cond_wait(&cond, &mutex); è chiamato, sblocca il mutex Thread 2 blocca il mutex e chiama pthread_cond_signal() , che sblocca il mutex Nel thread 1, viene chiamato pthread_cond_wait() e blocca nuovamente il mutex […]