Articles of pthreads

Come impostare lo stacksize con C ++ 11 std :: thread

Ho cercato di familiarizzare con la libreria std :: thread in C ++ 11 e sono arrivato a un ostacolo. Inizialmente provengo da uno sfondo di thread posix, e mi chiedevo come si configura la dimensione dello stack di std :: thread prima della costruzione, dato che non riesco a trovare alcun riferimento all’esecuzione di […]

Come dormire o mettere in pausa un PThread in c su Linux

Sto sviluppando un’applicazione in cui faccio il multithreading. Uno dei miei thread di lavoro mostra le immagini sul widget. Un altro thread suona il suono. Voglio interrompere / sospendere / mettere in pausa / sospendere i thread su un evento click del pulsante. È come quando clicchiamo sul pulsante play / pause del lettore video. […]

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.

Come prevenire la fame dello scrittore in un blocco di scrittura in lettura in pthreads

Ho alcune domande riguardanti i blocchi di lettura-scrittura in POSIX Pthreads su un sistema * nix, ad esempio Linux. Vorrei sapere qual è il bias di default per il blocco di lettura read, cioè preferisce le letture al di sopra delle scritture o viceversa? Fornisce qualche api per modificare questo comportamento predefinito. Il pthread di […]

Accept () thread-safe?

Sto attualmente scrivendo un semplice webserver in C per un corso che sto facendo. Un requisito è per noi implementare un pool di thread per gestire le connessioni utilizzando pthreads. So come farei in modo approssimativo (chiamando accept in un thread principale e passando il descrittore di file a un thread gratuito), tuttavia il mio […]

Porting di windows reset manuale dell’evento su Linux?

C’è una soluzione più semplice nel porting di un evento di reimpostazione manuale di windows in pthread, che una variabile condizionale pthread + pthread mutex + a flag se l’evento è impostato o non impostato?

Gestione del segnale in pthreads

Ho creato un pthread e installato un gestore di segnale al suo interno, esattamente come facciamo nella funzione main( ) . Il gestore di segnale del thread è una funzione separata. Sorprendentemente, non funziona, cioè il gestore del segnale del thread non è in grado di rilevare i segnali. Ecco il codice: #include #include #include […]

Come impostare il nome di un thread in pthreads Linux?

C’è un modo per impostare il nome di un thread in Linux? Il mio scopo principale è di essere utile durante il debug, e anche bello se quel nome fosse esposto attraverso ad esempio /proc/$PID/task/$TID/…

Passa il valore intero tramite pthread_create

Voglio semplicemente passare il valore di un intero a un thread. Come lo posso fare? Provai: int i; pthread_t thread_tid[10]; for(i=0; i<10; i++) { pthread_create(&thread_tid[i], NULL, collector, i); } Il metodo thread ha questo aspetto: void *collector( void *arg) { int a = (int) arg; … Ottengo il seguente avviso: warning: cast from pointer to […]

È corretto chiamare pthread_exit dal main?

Quando chiamo pthread_exit da main , il programma non finisce mai. Mi aspettavo che il programma finisse, visto che stavo uscendo dall’unica thread del programma, ma non funzionava. Sembra appeso. #include #include #include int main(int argc, char *argv[]) { printf(“-one-\n”); pthread_exit(NULL); printf(“-two-\n”); } Process Explorer mostra che il thread (solo) è in stato Wait:DelayExecution . […]