public class SellTicketRunnable implements Runnable{
//定义100张票
private int tickets = 100;
//定义同一把锁
private Object lock = new Object();
@Override
public void run(){while (true){//sync解决多条语句操作共享数据
//当一个线程操作完,别的线程才可能进来
synchronized (lock){if(tickets>0){try{
Thread.sleep(100);}catch (InterruptedException e){
e.printStackTrace();}
System.out.println(Thread.currentThread().getName()+"正在出售第"+(tickets--)+"张票");}}}}}
public class SellTicketDemoRunnable{/**
* 1,是否多线程环境
* 2,是否有共享数据
* 3,是否有多条语句操作共享数据
*/public static void main(String[] args){
//创建资源对象
SellTicketRunnable st = new SellTicketRunnable();
//创建三个线程对象
Thread t1 = new Thread(st,"窗口1");
Thread t2 = new Thread(st,"窗口2");
Thread t3 = new Thread(st,"窗口3");
//启动线程
t1.start();
t2.start();
t3.start();}}
public class SellTicketRunnable implements Runnable{ //定义100张票 private int tickets = 100; //定义同一把锁 private Object lock = new Object(); @Override public void run() { while (true){ //sync解决多条语句操作共享数据 //