Lock实现卖票代码
Posted 名字真的很急用
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lock实现卖票代码相关的知识,希望对你有一定的参考价值。
Lock锁。
Lock实现提供使用synchronized方法和语句可以获得更广泛的锁定操作。
Lock中提供了获得锁和师释放锁的方法。
void lock() 获得锁
void unlock() 释放锁
Lock是接口不能实例化,这里采用了她的实现类ReentrantLock来实例化。
ReentrantLock的构造方法。
ReentrantLock()创建一个ReentrantLock的实例。
代码如下。
package threadtest02;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class sellTickets implements Runnable {
private int tickets =100;
private Lock lock=new ReentrantLock();
public void run() {
while(true) {
try {
lock.lock();
if(tickets>0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"正在卖票"+tickets+"张票");
tickets--;
}
} finally {
// TODO: handle finally clause
lock.unlock();
}
}
}
}
public class ontest {
public static void main(String[] args) {
sellTickets st = new sellTickets();
Thread th1 = new Thread(st,"飞机");
Thread th2 = new Thread(st,"高铁");
Thread th3 = new Thread(st,"汽车");
th1.start();
th2.start();
th3.start();
}
}
以上是关于Lock实现卖票代码的主要内容,如果未能解决你的问题,请参考以下文章