Java线程中卖火车票问题的深入讲解

作者:玖然 时间:2022-07-22 07:38:52 

用Java代码模拟卖100张火车票问题:四个售票窗口同时售票且不能卖出同一张火车票。

代码如下。


package lesson;
public class Demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Train tt = new Train();
Thread t1 = new Thread(tt);
Thread t2 = new Thread(tt);
Thread t3 = new Thread(tt);
Thread t4 = new Thread(tt);
t1.setName("窗口1");
t2.setName("窗口2");
t3.setName("窗口3");
t4.setName("窗口4");
t1.start();
t2.start();
t3.start();
t4.start();
}
}
class Train implements Runnable{
int a= 1;
@Override
public synchronized void run() {//synchronized为进程上锁
// TODO Auto-generated method stub
while(true) {
if(a<=100) {
System.out.println(Thread.currentThread().getName()+"卖出"+a+"号票");
a++;
}
try {
this.wait(230);
//Thread.sleep(100);//结果输出只有窗口1卖了所有票如图2所示
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

wait()正常运行结果图1:

Java线程中卖火车票问题的深入讲解

sleep()运行结果如图2所示:

Java线程中卖火车票问题的深入讲解

两种结果不同的主要主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。

来源:https://blog.csdn.net/qq_44086320/article/details/109584382

标签:java,线程,火车票
0
投稿

猜你喜欢

  • 使用 Lambda 取代 Android 中的匿名类

    2023-11-16 14:01:04
  • Java 详解包装类Integer与int有哪些共通和不同

    2022-06-15 20:12:18
  • C#正则实现Ubb解析类的代码

    2021-10-23 22:19:38
  • C#获取路由器外网IP,MAC地址的实现代码

    2021-07-03 06:01:32
  • Unity3D Shader实现扫描显示效果

    2023-03-16 22:51:39
  • Django之多对多查询与操作方法详解

    2021-08-03 03:21:58
  • C#多线程之取消架构介绍

    2022-03-06 22:14:42
  • java中@SuppressWarnings注解用法详解

    2023-09-20 23:11:40
  • 详解ASP.NET中Identity的身份验证代码

    2022-05-20 04:43:48
  • mybatis中<choose>标签的用法说明

    2023-07-22 19:37:27
  • springboot热部署知识点总结

    2021-08-23 12:05:43
  • C#实现简单的聊天窗体

    2022-11-09 03:25:13
  • Android手机屏幕同步工具asm.jar

    2023-10-31 20:01:26
  • C#使用struct直接转换下位机数据的示例代码

    2023-06-07 01:49:01
  • 详解Spring Cloud Zuul 服务网关

    2021-11-15 19:24:19
  • java-制表符\\t的使用说明

    2023-12-03 10:18:02
  • Ubuntu中为Android简单介绍硬件抽象层(HAL)

    2022-10-27 21:12:45
  • Java的设计模式编程中迪米特法则的应用示例

    2022-10-29 01:34:35
  • Java分析讲解序列化与字典功能的序列化

    2021-11-12 11:19:25
  • 简单好用的Adapter---ArrayAdapter详解

    2022-09-08 08:33:05
  • asp之家 软件编程 m.aspxhome.com