二、使用步骤
1.使用Runnable接口
代码如下(示例):
package jiruan.jiruan325.lian.lian3;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class BuyTicketTread implements Runnable{
int ticketNum = 20;
//拿来一把锁:
Lock lock = new ReentrantLock();//多态 接口=实现类 可以使用不同的实现类
public void run() {
for (int i = 1; i <= 100 ; i++) {
//打开锁:
lock.lock();
try{
if(ticketNum > 0){
System.out.println("我在"+Thread.currentThread().getName()+ "售出车票" + ticketNum-- );
Thread.sleep(1000);
} }catch (Exception ex){
ex.printStackTrace();
}finally {
//关闭锁:--->即使有异常,这个锁也可以得到释放
lock.unlock();
}
}
}
}
2.测试类
代码如下(示例):
package jiruan.jiruan325.lian.lian3;
import jiruan.jiruan325.ke.ke1.BuyTicketThread;
public class Test {
public static void main(String[] args) {
BuyTicketTread t = new BuyTicketTread();
//窗口1买票:
Thread t1 = new Thread(t,"窗口1");
t1.start();
//窗口2买票:
Thread t2 = new Thread(t,"窗口2");
t2.start();
//窗口3买票:
Thread t3 = new Thread(t,"窗口3");
t3.start();
}
}
运行结果