@ArChaNGeL, wszystko zależy od tego której biblioteki wątków chciałbyś użyć.
Do wyboru masz min:
- OpenMP (
http://openmp.org)
- Posix Threads (masz ją już w swoim Linux'ie) - polecam
OpenMP jest to całkiem fajna biblioteka, zyskująca coraz większą popularność. Teoretycznie do napisanego kodu wystarczy, że dodasz odpowiednio dyrektywy preprocesora, chociaż bez drobnych zmian w kodzie zazwyczaj też się nie obejdzie. Generalnie stworzona została z myślą maksymalnego uproszczenia pisania programów wielowątkowych, bez konieczności kontrolowania każdego wątku z osobna. Być może do twoich celów będzie odpowiednia.
Dzięki Posix Threads (pthreads) możesz mieć kontrolę absolutną nad wątkami. Będziesz w stanie tworzyć wątki, przydzielać im niezależne (lub zależne) od siebie zadania, scalać wyniki obliczeń różnych wątków, zaprogramować komunikację między nimi i wiele wiele więcej, możliwości są nieograniczone
Jednak wiąże się to ze większym nakładem pracy i może okazać się to dość trudne. Jednak myślę, że warto bo będziesz wiedział dokładnie co dzieje się w twoim programie.
Dokumentacje jak używać pthreads znajdziesz na stronach man, np.:
Do tego mogą ci się przydać semafory, np:
Kod: Zaznacz cały
man sem_init
man sem_post
man sem_wait
itd.
i mutex'y, np.:
Kod: Zaznacz cały
man pthread_mutex_init
man pthread_mutex_init
itd.
Na początek polecałbym OpenMP bo być może wystarczy do twojego zadania i zaoszczędzisz dużo czasu. W razie problemów z OpenMP (czasem bywa ciężko) przejdź na Posix Threads, tym bardziej jeśli lubisz programować.
W razie problemów pisz.
pozdrawiam