Kiedy używać/nie używać wątków?

0

Kiedy w systemie wieloprocesorowym nie opłaca się stosować wielu wątków?

kiedy nie zwiększa to wydajności aplikacji,
kiedy zwiększenie wydajności aplikacji jest niewielkie, a kod staje się znacznie trudniejszy w obsłudze (nie jest przestrzegana zasada KISS),
kiedy synchronizacja między wątkami zajmuje za dużo czasu.

**Kiedy w systemie wieloprocesorowym opłaca się stosować wiele wątków?
**
kiedy ułatwia to konstrukcję programu, a synchronizacja między wątkami nie zajmuje za dużo czasu,
kiedy można uzyskać znaczny przyrost wydajności aplikacji.

Co można jeszcze tu dodać?

2

kiedy używać - wtedy kiedy architektura tego wymaga, kiedy nie używać - kiedy architektura tego nie wymaga. Nie wiem co jeszcze można napisać. Bo to co Ty napisałeś to są jakieś mętne slogany. Wątek to nie jakiś twór dekoracyjny tylko konkretne rozwiązanie dla konkretnych problemów - np. długotrwałe operacje blokujące UI.

1

kiedy ułatwia to konstrukcję programu

pics or it didn't happen ;)

Generalnie są dwie przesłanki żeby użyć wielu wątków:

  1. Masz pewne operacje które powinny wykonywać się "w tle" i nie blokować głównego wątku aplikacji. Dobrym przykładem są aplikacje z GUI, gdzie czasem chcesz coś wykonać w tle, ale jednocześnie nie zamrażać całego interfejsu na czas wykonania tej akcji.
  2. Kiedy coś można wyraźnie zrównoleglić i tym samym uzyskać duży przyrost wydajności.

Poza tymi sytuacjami raczej nie należy myśleć o wątkach, a czasem i w tych sytuacjach można zrobić coś innego -> np. event queue.

1 użytkowników online, w tym zalogowanych: 0, gości: 1