szálkezelés és egyidejűleg futható max szálak száma

Fórumok

prológus: Életemben először használok java-t, de a szálkezelés miatt kénytelen vagyok használni. (bár eddig simán vettem az akadályokat)

A probléma a következő.
Adott egy program ami max n szállal futhat. Ezt a következő kóddal próbáltam megoldani:
http://rafb.net/p/I4nuKe83.html

A probléma az, hogy ha a thread osztályba direkt olyan kódot teszek ami lassan fut (timeout 100 mp-ig), akkor is a következő for cikluskor a 0. elem futását false-nak veszi és azt indítja el megint. Hogyan lehet ilyen problémát elegánsan megoldani?

Hozzászólások

Hol van itt több thread? (nincs egy darab Thread.start() hívás se...)

A kód amit linkeltél nem indít több szálat. Valahol olvass utána hogy is működnek ezek a szálak.

Sőt! Ha zöldmezős a dolog amit csinálsz akkor nem érdemes a thread API-t használni, hanem inkább egyből tanuld meg a concurrent API-t. Ez a cikk például erről szól (nem olvastam el, de egyike az első gugli találatoknak): http://developerlife.com/tutorials/?p=24

Concurrent API-ban a thread pool eleve meg van valósítva, csak használni kell megtanulni.