Lock是一个接口,知道这个哪些实现类
查看接口实现类通过
在上锁后,只有上锁这部分代码执行完后其他线程才可以执行上锁的代码块
lock.lock();
代码块
lock.unlock();
import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class LockTest { public static void main(String[] args) { final Lock lock = new ReentrantLock();new Thread(new Runnable() {@Overridepublic void run() {lock.lock();try{ for(int i=0;i<100;i++){ System.out.PRintln("-a"); }}finally{lock.unlock();} }}).start();new Thread(new Runnable() {@Overridepublic void run() {lock.lock();try{ for(int i=100;i<310;i++){ System.out.println("-b"); }}finally{lock.unlock();}}}).start(); }}
输出:
-a-a-a
..-b-b-b-b-b-b-b
...
分析:只有输出a的线程执行完毕后,解锁后,输出b的线程才可以执行输出b
新闻热点
疑难解答