JAVA与并发
API 在java1.5之前,java的并发API都是依靠Thread, Runnable, ThreadLocal, ThreadGroup以及Object特有的现成先关方法所构成。此外,还有synchronized, volatile两个关键字对同步和内存一致性的定义。从1.5开始,java的API中多了一个包, java.util.concurrent, 更丰富了并发的API。 本文不是普及知识,所以不对每个API都做详尽的解释,但还是有必要列一张简单的表格。 同步机制 API Java版本 描述 示例 synchronized(obj) { } 1.4 多线程在此代码块必须同步执行 。 线程的interrupt()方法对同步锁上的阻塞是无效的,当线程获取到锁而进入同步块后, 可以调用Thread.interrupted()方法来检验本线程是否被interrupted了。 synchronized(obj) { if (Thread.interrupted()) { // This thread is interrupted. } } Lock since 1.5 替换synchronized。 Lock l = new ReentrantLock(); l.lock(); try { // access the resource protected by this lock