Saya kira sumber informasi terbaik Anda dimulai dari Wikipedia dan mengikuti tautan dari sana.
Benar-benar tidak ada perbedaan:NPTL hanyalah implementasi Linux saat ini dari utas POSIX, Anda masih menggunakan keluarga fungsi pthread_*. Sebelumnya dalam sejarah Linux, perpustakaan khusus yang disebut libpthreads digunakan. NPTL muncul untuk 2.6+ kernel sekitar tahun 2003, lihat tautan di atas untuk detail lebih lanjut.
[BTW:NPTL ==Pustaka Thread Posix Asli]
"POSIX threads" adalah 'standar', mendefinisikan API untuk threading. yaitu menyatakan bahwa fungsi seperti pthread_exit ()
dll, harus ada dalam sistem, dan menjelaskan bagaimana mereka harus berperilaku. Semua sistem operasi yang sesuai dengan POSIX mengimplementasikan utas POSIX dengan caranya sendiri.
NPTL adalah sekumpulan fitur yang memungkinkan "Linux" (kernel) mengimplementasikan "thread POSIX" (standar) secara efisien.
Anda dapat membaca lebih lanjut tentang NPTL dan bagaimana hal itu terjadi di sini
Utas POSIX (pthread) bukan implementasi, ini adalah spesifikasi API (standar, di atas kertas, dalam bahasa Inggris) dari beberapa fungsi yang namanya dimulai dengan pthread_
dan yang didefinisikan dalam <pthread.h>
tajuk. POSIX juga merupakan kumpulan spesifikasi.
NPTL sekarang ada di dalam GNU Libc di Linux dan (atau setidaknya berusaha sangat keras untuk menjadi) implementasi dari utas POSIX. Ini adalah sekumpulan kode sumber dan biner di sistem Linux Anda. Sebuah aplikasi yang dikompilasi dengan gcc -pthread
dan ditautkan dengan -pthread
menggunakan kode NPTL di Linux saat ini.
tambahan
Terdapat implementasi alternatif dari pthread
-s:di Linux, MUSL Libc bertujuan agar sesuai dengan Posix (yang berarti memiliki pthreads); pada sistem Posix lain (AIX, Solaris, ...) Anda juga memiliki pthreads (tetapi bukan NPTL atau Glibc).