场景
Java中Thread类的常用API以及使用示例:
Java中Thread类的常用API以及使用示例_霸道流氓气质的博客-CSDN博客
在上面的基础上,学习线程同步的相关概念。
数据不一致问题引入
模拟一个营业厅叫号机程序
package com.ruoyi.demo.threadsafe;
/**
* 模拟营业大厅叫号程序,每次会不一样的发现:某个号码被略过、某个号码被多次显示、号码超过了最大值500
*/
public class TicketWindowRunable implements Runnable{
private int index = 1;
private final static int MAX = 500;
@Override
public void run() {
while (index <= MAX)
{
System.out.println(Thread.currentThread()+"的号码:"+(index++));
}
}
public static void main(String[] args) {
final TicketWindowRunable task = new TicketWindowRunable();
Thread windowThread1 = new Thread(task,"1号窗口");