卖票线程安全版
package src.main.java.com.qqjx.thread;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class TicketSeller3 {
static List<String> tickets = new LinkedList<>();
static {
for(int i=0; i<1000; i++) tickets.add("票 编号:" + i);
}
public static void main(String[] args) {
for(int i=0; i<10; i++) {
new Thread(()->{
while(true) {
synchronized(tickets) {
if(tickets.size() <= 0) break;
try {
TimeUnit.MILLISECONDS.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("销售了--" + tickets.remove(0));
}
}
}).start();
}
}
}
销售了--票 编号:985
销售了--票 编号:986
销售了--票 编号:987
销售了--票 编号:988
销售了--票 编号:989
销售了--票 编号:990
销售了--票 编号:991
销售了--票 编号:992
销售了--票 编号:993
销售了--票 编号:994
销售了--票 编号:995
销售了--票 编号:996
销售了--票 编号:997
销售了--票 编号:998
销售了--票 编号:999