在语言级别支持线程意味着该语言为多线程提供了一流的支持,而不是仅通过类库提供二级支持.
在Java中,语言级别使用synchronized和volatile关键字支持线程.使用监视器和volatile字段是相对低级的线程构造 – 更高级别的构造,例如通用Locks,Barriers,ThreadPools,Concurrent集合可以在java.util.concurrent包中找到,还有低级原子操作.
Java中的线程不仅仅是该语言中的几个关键字. Java Memory Model要求多线程内存访问的结果,例如当一个线程的更改对其他线程可见时.这确保正确编写的线程程序按预期运行,而不管底层架构(指令重新排序,缓存一致性策略等).
原始的java类库提供了对java.lang.Thread的线程支持,代表一个线程,并且从JDk 1.2开始,java.lang.ThreadLocal表示线程局部变量.原始JDK还包括可执行对象的抽象概念 – java.lang.Runnable.并发工具使用Callable和Future扩展了这一点,这使得创建异步结果比仅使用低级结构进行编码要简单得多.
虽然你可以使用volatile,synchronized和Runnable(与JDK 1.5之前一样),但并发工具提供的类使得编写线程程序变得更容易,并且更有可能使它们正确.