0
点赞
收藏
分享

微信扫一扫

一个线程不安全的例子

曾宝月 2022-12-22 阅读 72


package com.example.demoClient.lg;

/**
* @author Dongguabai
* @date 2018/11/10 16:53
*/
public class Demo3 {

private int value = 1;

public static void main(String[] args) {
Demo3 demo3 = new Demo3();
new Thread(() -> {
while (true) {
System.out.println("用户" + Thread.currentThread().getName() + "买了第" + demo3.increamentAndGet() + "张票");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}, "张三").start();
new Thread(() -> {
while (true) {
System.out.println("用户" + Thread.currentThread().getName() + "买了第" + demo3.increamentAndGet() + "张票");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}, "王五").start();
new Thread(() -> {
while (true) {
System.out.println("用户" + Thread.currentThread().getName() + "买了第" + demo3.increamentAndGet() + "张票");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}, "李四").start();

}

//synchronized
public int increamentAndGet() {
return value++;
}
}

 

举报

相关推荐

0 条评论