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();
}
}
控制台运行结果如下:
发现问题:通过运行发现,多个线程同时执行时,有几率会操作同一个资源,线程不安全,数据紊乱