POSIX Threads: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Formatto ISBN; modifiche estetiche |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(12 versioni intermedie di 12 utenti non mostrate) | |||
Riga 1:
{{NN|informatica|ottobre 2018}}
I '''
Le implementazioni
== Contenuti ==
pthreads definisce un insieme di tipi, funzioni e costanti in linguaggio C. È implementato con un'intestazione
Esistono circa 100 procedure di thread, tutte con prefisso
* Gestione dei thread: creazione, unione, ecc.
* mutex
* Variabili di condizione
* Sincronizzazione tra thread utilizzando blocchi di lettura/scrittura e barriere
L'API POSIX dei [[Semaforo (informatica)|semafori]] funziona con i thread POSIX ma non fa parte dei thread standard, essendo stata definita nello standard ''POSIX.1b - estensioni in tempo reale (IEEE Std 1003.1b-1993)''. Di conseguenza, le procedure del semaforo sono precedute da
== Esempio ==
Un esempio che illustra l'uso di pthread in linguaggio C:<
#include<stdio.h>
#include<stdlib.h>
Riga 33:
sleep(sleep_time);
printf("THREAD %d: Ended.\n",index+1);
return NULL;
}
Riga 45:
for(i=0;i<NUM_THREADS;i++){
printf("IN MAIN: Creating thread %d.\n",i+1);
thread_args[i]=i;
result_code=pthread_create(&threads[i],NULL,perform_work,&thread_args[i]);
Riga 64 ⟶ 63:
}
</
gcc pthreads_demo.c -lpthread -o pthreads_demo
Riga 70 ⟶ 69:
Windows non supporta lo standard '''pthreads '''in modo nativo, pertanto il progetto Pthreads-w32 cerca di fornire un'implementazione [[wrapper]] portatile e open source. Può anche essere usato per portare il software Unix (che utilizza '''pthreads''') con poca o nessuna modifica alla piattaforma Windows. Con alcune patch aggiuntive l'ultima versione 2.8.0 è compatibile con i sistemi Windows a 64 bit. Si dice che anche la versione 2.9.0 sia compatibile a 64 bit.
Il progetto mingw-w64 contiene anche un'implementazione di wrapper di '''pthreads '''chiamata
Il sottosistema di ambiente [[Interix]] disponibile in [[Windows Services for UNIX/Subsystem for UNIX-based Application]] fornisce una porta nativa dell'API '''pthreads''', ossia non mappata sull'API Win32/Win64 ma costruita direttamente sull'interfaccia [[Chiamata di sistema|syscall]] del sistema operativo.
== Note ==
<references />
== Bibliografia ==
* David R. Butenhof (1997). Programming with POSIX Threads. Addison-Wesley. ISBN 978-0-201-63392-4.
* Bradford Nichols; Dick Buttlar; Jacqueline Proulx Farell (September 1996). Pthreads Programming. O'Reilly & Associates. ISBN 978-1-56592-115-3.
* Charles J. Northrup (1996-01-25). Programming with UNIX Threads. John Wiley & Sons. ISBN 978-0-471-13751-1.
* Kay A. Robbins & Steven Robbins (2003). UNIX Systems Programming. Prentice-Hall. ISBN 978-0-13-042411-2.
Riga 99 ⟶ 98:
* Beginthread (una subroutine in Windows per creare un nuovo thread e uno Unix thread)
* State Threads, un approccio ''event driven'' al threading
== Collegamenti esterni ==
* [http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html The Open Group Base Specifications Issue 7, IEEE Std 1003.1]
|