Pula wątków a wiele indywidualnych wątków

Jestem w środku problemu, w którym nie mogę zdecydować, które rozwiązanie podjąć.

Problem jest nieco wyjątkowy. Ujmijmy to w ten sposób: odbieram dane z sieci w sposób ciągły (2 do 4 razy na sekundę). Teraz każde dane należy do innej, powiedzmy, grupy. Teraz nazwijmy te grupy, grupa1, grupa2 i tak dalej.

Każda grupa ma dedykowaną kolejkę zadań, w której dane z sieci są filtrowane i dodawane do odpowiedniej grupy w celu przetworzenia.

Na początku utworzyłem dedykowany wątek na grupę, który pobierałby dane z kolejki zadań, przetwarzał je, a następnie przechodził w stan blokowania (za pomocą kolejki łączenia bloków).

Ale mój starszy zasugerował, że powinienem używać pul wątków, ponieważ w ten sposób wątki nie zostaną zablokowane i będą mogły być używane przez inne grupy do przetwarzania.

Ale tu chodzi o to, że pobieranie danych jest wystarczająco szybkie, a czas potrzebny na przetworzenie wątku jest wystarczająco długi, aby wątek mógł nie przejść w tryb blokowania. Gwarantuje to również, że dane będą przetwarzane sekwencyjnie (zadanie 1 zostanie wykonane przed zadaniem 2), co w pulowaniu stwarza bardzo małe szanse, może się nie zdarzyć.

Mój starszy jest również skłonny do tego, że tworzenie puli zaoszczędzi nam również wiele pamięci, ponieważ wątki są POOLOWANE (myślę, że naprawdę poszedł na słowo;)). Chociaż nie zgadzam się na to, ponieważ osobiście uważam, że zbiorczo lub nie każdy wątek otrzymuje własną pamięć stosu. Chyba że jest coś w pulach wątków, o których nie wiem.

I ostatnia rzecz, zawsze myślałem, że łączenie pomaga tam, gdzie zadania pojawiają się w dużej liczbie przez krótki czas. Ma to sens, ponieważ pojawienie się wątku byłoby zabójstwem wydajności, ponieważ czas potrzebny na zainicjowanie wątku to dużo więcej niż czas poświęcony na wykonanie zadania. Więc pooling bardzo pomaga.

Ale w moim przypadku grupa1, grupa2, ..., groupN zawsze pozostają żywe. Więc jeśli są dane, to nadal będą tam. Tak więc pojawienie się wątku nie jest tutaj problemem.

Mój senior nie jest przekonany i chce, żebym skorzystał z rozwiązania pooling, ponieważ jego pamięć jest świetna.

Więc jaką ścieżkę wybrać?

Dziękuję Ci.

questionAnswers(2)

yourAnswerToTheQuestion