Wpis z mikrobloga

Mirkasy,
jeżeli chodzi o czystą Javę i wątki.
Załóżmy, że mamy maszynę 4 rdzenie i 8 wątków.
Jaki jest sens tworzenia thread pool'a z 20, 50 czy 100 wątkami? Przecież i tak w jednym czasie wykonywać będą się tylko te 8 procesów. To tylko więcej operacji dla procesora na "switching".
#java
  • 7
Nawet na jednym corze mozesz przyspieszyć kilka wątków może przyspieszyć działanie programu znacznie. Wszystko zależy jaka robote twój program robi. Jak dużo czasu spędzasz na czekaniu na IO to jak najbardziej tutaj kilka threadów pomoże, przełączyć robote na inne taski. Ale jak tylko coś liczysz, czy obrabiasz dane na CPU to tak naprawde tutaj nic nie zyskasz. Lepiej robić wszystko w 1 threadzie jesli masz 1 CPU :)
Jak zawsze, pomierz i
Dlaczego akurat wszyscy wymieniają to czekanie IO? Czym się różni thread czekający 2sek na IO od threada przetwarzającego coś 2sek? Oba są zajęte/zawieszone.


@victordeleco2: LOL, a Ty czym się różnisz czekając na obiad a jedząc go? Wątek czekający na I/O nie zużywa cyklów procesora, w tym czasie procesor może wykonywać inne obliczenia. Wątek przetwarzający coś ... no chyba nie trzeba tłumaczyć... w tym czasie procesor (a w dzisiejszych czasach szybciej rdzeń