już chyba po dwóch zdaniach coś mnie tknęło w sprawie wątków. Chciałbym tylko aby ktoś mnie poprawił jeżeli się mylę. Wytłumaczę to w prosty sposób, taki laicki.
Wyobraźmy sobie pętlę główną w systemie operacyjnym, to jest pętla która nigdy się nie kończy... Zadaniem tej pętli w systemie operacyjnym jest "zbieranie" żądania przydzielenia zasobów do CPU (czy to od usera czy to od sprzętu) aby jakiś program lub wiele programów mogły się wykonać, a my jako użytkownicy mamy wrażenie, że te programy działają jednocześnie i w tym samym czasie.
teraz stop klatka milisekunda po milisekundzie ;)
Załóżmy, że pracuje 10 programów, ta pętla ma w sobie do obsłużenia te 10 programów i dla uproszczenia przyjmiemy, że pętla zaczyna obsługę od programu numer 1, program numer 1 coś wykonał ale nie zakończył swojego działania, następnie po obsłużeniu tego programu pętla główna przechodzi do obsługi programu numer 2, program numer 1 wisi i czeka w kolejce na obsłużenie, następnie gdy program numer 2 coś wykona, to pętla zawiesza program numer 2 i przechodzi do obsługi programu numer 3, program numer 1 i 2 czekają grzecznie w kolejce na obsługę i cały ten cykl trwa aż pętla zdarzeń obsłuży pozostałe 9 programów, cykl obsługi kolejki trwa również do momentu aż któryś z programów nie zakończy swojego działania.
Procesor przetwarza te informacje tak szybko, że nie jesteśmy w stanie wyłapać momentu obsługi jakiegoś programu przez procesor i mamy wrażenie, że działa to płynnie.
I tutaj dochodzimy do sedna sprawy programowania wątków. Dlaczego odradzacie programowania wątkowego. Bo za obsługę wątków i ich przydzielanie wyręcza mnie system operacyjny więc po co się w to bawić ? Jeżeli mam taką potrzebę programowania wątku, to w tym momencie wchodzę w interakcję z systemem operacyjnym i to wygląda tak, jakbym na siłę systemowi operacyjnemu wstrzykiwał wątek który ma obsłużyć priorytetowo i nie jestem w stanie przewidzieć zachowania się programu i systemu operacyjnego.
Tak z grubsza to rozumiem, no chyba, że ktoś rozpisze znacznie lepszą analogię od mojej