Ik ben de afgelopen tijd weer veel bezig met allerlei threading problematiek en ik maak hiervoor met veel plezier gebruik van de concurrency library van Doug Lea. Ik gebruik op dit moment een backport van 1.5 naar 1.4, zodat ik het onder 1.4 ook kan gebruiken en daarin dezelfde functionaliteit aantref als 1.5 (alleen andere package naam).
Een van de dingen waar ik het meeste gebruik van maak is de threadpool functionaliteit (ExecutorServices) en daarmee is het een eitje om allerlei pooling problematiek op te lossen. Verder zit er nog een heel reeks met andere componenten in die imho nooit hadden mogen ontbreken zoals Semaforen, mutexen etc etc.
De hele library is verder goed doordacht maar toch eenvoudig te gebruiken en uit te breiden. Voor een threadpool had ik meer behoefte controle over de prioriteiten van de threads. Gelukkig kan je een eigen implementatie aanmaken van de ThreadFactory -> dus daar een nieuwe implementatie van gemaakt waar ik deze controle wel had en meteen beter naamgeving van de threads/threadgroup. Prachtig.
Verder is threading problematiek lastig om te testen. en om in ieder geval de basis dingen te kunnen testen, wissel ik de ThreadPoolExecutorService om met een DirectExecutorService waarin geen threadpool zit, maar tasks worden afgehandeld door de thread die de tasks er ook in plaatst -> prachtig.
Ik ben dus erg tevreden met deze library. Goed doordacht, eenvoudig te gebruiken (als je thuis bent in concurrency control), en goed uit te breiden. Wie werkt er nog meer graag met de nieuwe concurrency library?
[edit]
Een ander belangrijk minpunt dat eindelijk is opgelost, is het Collection Framework ook eindelijk eens een Queue heeft (en er zitten bij de concurrency control library een hele reeks met implementaties)
[edit2]
Url backport toegevoegd.
Een van de dingen waar ik het meeste gebruik van maak is de threadpool functionaliteit (ExecutorServices) en daarmee is het een eitje om allerlei pooling problematiek op te lossen. Verder zit er nog een heel reeks met andere componenten in die imho nooit hadden mogen ontbreken zoals Semaforen, mutexen etc etc.
De hele library is verder goed doordacht maar toch eenvoudig te gebruiken en uit te breiden. Voor een threadpool had ik meer behoefte controle over de prioriteiten van de threads. Gelukkig kan je een eigen implementatie aanmaken van de ThreadFactory -> dus daar een nieuwe implementatie van gemaakt waar ik deze controle wel had en meteen beter naamgeving van de threads/threadgroup. Prachtig.
Verder is threading problematiek lastig om te testen. en om in ieder geval de basis dingen te kunnen testen, wissel ik de ThreadPoolExecutorService om met een DirectExecutorService waarin geen threadpool zit, maar tasks worden afgehandeld door de thread die de tasks er ook in plaatst -> prachtig.
Ik ben dus erg tevreden met deze library. Goed doordacht, eenvoudig te gebruiken (als je thuis bent in concurrency control), en goed uit te breiden. Wie werkt er nog meer graag met de nieuwe concurrency library?
[edit]
Een ander belangrijk minpunt dat eindelijk is opgelost, is het Collection Framework ook eindelijk eens een Queue heeft (en er zitten bij de concurrency control library een hele reeks met implementaties)
[edit2]
Url backport toegevoegd.
[ Voor 21% gewijzigd door Alarmnummer op 18-04-2005 11:38 ]