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,且其也没有停止开发的迹象)?