Witam,
Piszę aplikacje sieciową (opartą o gniazda). Ogólnie nigdy tego nie robiłem, stąd ten wątek i może głupie pytania. Początkowo myślałem o stosowaniu funkcji fork() do obsługi klientów, ponieważ jest prosta i łatwo pozwala na wykonanie dwóch czynności jednocześnie. Dowiedziałem się, że główna różnica między procesami, a wątkami polega na współdzieleniu zasobów tzn. przykładowo mając kontener i zapisane w nim jakieś rekordy (np. struktury bazy danych) dla każdego procesu (będzie ich tyle, ile podłączonych klientów) będe miał odzielny kontener i nowo wrzucone dane nie będą dostępne w pozostałych procesach (jeśli dobrze rozumiem).
Konketne pytania:
- Czy wątki są najprostszym rozwiązaniem współdzielenia zasobów pomiędzy różnymi, jednocześnie wykonującymi się czynnościami?
- Jakie jest zdroworozsądkowe API dla języka C realizujące to? Ważne, aby kompilowało się pod Linuksem i FreeBSD. Chwilę poszukałem i znalazłem: http://pl.wikipedia.org/wiki/POSIX_Threads
Mam zamiar uczyć się właśnie tego, chyba że doradzicie inaczej.
Pozdrawiam,