J2SE 5.0在多線程上做了很大的改進,提供了更多的API,包括:
Atomic variables: A set of classes that provide threadsafe operations without synchronization
Explicit locks: Synchronization locks that can be acquired and released programmatically
Condition variables: Variables that can be the subject of a targeted notification when certain conditions exist
Queues: Collection classes that are thread-aware
Synchronization primitives: New classes that perform complex types of synchronization
Thread pools: Classes that can manage a pool of threads to run certain tasks
Thread schedulers: Classes that can execute tasks at a particular point in time
在《Java Threads》一書中將其歸納為三類:
1. 對現有功能的新實現;
2. 提供了重要的多線程工具,如線程池(pool)和計劃(schedule);
3. 最小化同步工具(Minimal synchronization utilities)。
這些功能的妙處我現在自然是無法體會得到,但對于JDK 5.0中提供的這些多線程工具,會不會也遭遇JDK 1.4提供的Log API的命運,因敵不過第三方工具而成為擺設呢(至少目前我還在用Log4J,且其也沒有停止開發的跡象)?