Runnable并发问题(火车票练习)
Posted 小郑要做干饭人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Runnable并发问题(火车票练习)相关的知识,希望对你有一定的参考价值。
package com.zzx.线程.Runnable;
/**
* @date: 2022/08/15/ 23:13
* @author: ZhengZiXuan
* @title: 多个线程操作同一个对象
* @description: 买火车票的例子
*/
public class RunnableTest01 implements Runnable
//票数
private int ticketNums = 10;
public void run()
while (true)
if (ticketNums <= 0)
break;
//模拟延时
try
Thread.sleep(200);
catch (InterruptedException e)
e.printStackTrace();
System.out.println(Thread.currentThread().getName()+"==>拿到了第"+ ticketNums-- + "张火车票");
class test
public static void main(String[] args)
RunnableTest01 runnableTest01 = new RunnableTest01();
new Thread(runnableTest01,"张三").start();
new Thread(runnableTest01,"李四").start();
new Thread(runnableTest01,"王五").start();
控制台运行结果如下:
发现问题:通过运行发现,多个线程同时执行时,有几率会操作同一个资源,线程不安全,数据紊乱
以上是关于Runnable并发问题(火车票练习)的主要内容,如果未能解决你的问题,请参考以下文章