package JAVA编程练习题;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
- @author RenBoQing
- @version 8.0
- @date 2020/5/31 21:51
*/
public class Test5 {
/
为了解决线程代码的安全问题 使用锁机制来进行保护代码的安全问题
*/
public static void main(String[] args) {
Mytickets mytickets=new Mytickets();
Thread thread1=new Thread(mytickets,“窗口一”);
Thread thread=new Thread(mytickets,“窗口二”);
thread.start();
thread1.start();
}
}
class Mytickets implements Runnable{
private int tricket =100;
Lock lock=new ReentrantLock();//利用锁机制来防止代码块出现问题
@Override
public void run() {
while (true){
lock.lock();
if(tricket>0){
System.out.println(Thread.currentThread().getName()+"正在发售第"+tricket+"张票");
tricket--;
}
lock.unlock();
}
}
}
代码仅供参考,我是JAVA小白,欢迎大家指正。