多线程售卖门票
程序员文章站
2024-03-23 18:08:16
...
public static void main(String[] args){
MyRunnable runnable=new MyRunnable();
Thread t1 =new Thread(runable); t1.setNmae("海淀区");
Thread t2=new Thread(runnable);t2.setName("朝阳区");
Thread t3=new Thread(runnable);t3.setName("丰台区");
Thread t4=new Thread(runnable);t4.setName("延庆区");
Thread t5=new Thread(runnable);t5.setName("东城区");
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
//如果实现数据空间资源共享,建议创建线程使用实现runnable接口的方式
class MyRunnable implements Runnable{
//票源数据100张
public void run(){
try{
sell();
}catch(Exception e){
e.printStackTrace();
}
}
//wait() 线程等待,他会释放数据空间
//notify() 线程唤醒,换线等待线程中的第一个线程
//notifyAll() 线程唤醒,同时唤醒所有等待线程
public void sell(){
//同步代码块,代码锁,方发锁,对象锁
synachrinized(this){
while(ticket<100){
this.notifyAll();//唤醒等待序列的其他线程
System.out.println(Thread.currentThread().getName()+"卖了第"+ticket+"张票");
ticket++;
try{
this.wait();//线程等待 ,释放空间
}catch(Exception e){
e. printStackTrace();
}
}
}
}
推荐阅读
-
【dfs】买门票
-
多线程售卖门票
-
c中计算门票
-
Tomcat源码之JIoEndpoint 博客分类: 多线程
-
对redis数据持久化的一些想法 博客分类: redis RedisOSTokyoCabinet应用服务器多线程
-
体验TokyoCabinet和TokyoTyrant 博客分类: 持久化 TokyoCabinet应用服务器配置管理数据结构多线程
-
【备份】对redis数据持久化的一些想法 博客分类: Nosql RedisOSTokyoCabinet应用服务器多线程
-
多线程编程-volatile关键字(三)
-
ExecutorService使用 博客分类: java 多线程 多线程
-
深入理解 Java 多线程核心知识:跳槽面试必备! ! !