多线程共享数据
模拟抢票例子:
package cn.kgc;
/**
* @Author $(USER)
* @Date $(DATE)
* @Description 模拟用户网络购票
*/
public class TicketThread implements Runnable {
private int ticket=10;//记录车票总数
private int num=0;//记录用户抢到了第几张票
@Override
public void run() {
while(true){
//没有余票,跳出循环
if(ticket<=0){
break;
}
ticket--;
num++;
//模拟网络延迟
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"抢到了第"+num+"张票,剩余"+ticket+"张票");
}
}
}
package cn.kgc;
/**
* @Author $(USER)
* @Date $(DATE)
* @Description
*/
public class TestThread {
public static void main(String[]