oop思想实践-线程就是一个资源类,没有任何附属操作
OOP思想实践-线程就是一个资源类,没有任何附属操作
不要把Ticket 写成一个Runnable接口的实现,最好用lambda表达式
package com.example.juc;
public class SaleTicket {
public static void main(String[] args) {
Ticket ticket = new Ticket();
new Thread(() -> {
for (int i = 0; i < 40; i++) {
ticket.sale();
}
}, "A").start();
new Thread(() -> {
for (int i = 0; i < 40; i++) {
ticket.sale();
}
}, "B").start();
new Thread(() -> {
for (int i = 0; i < 40; i++) {
ticket.sale();
}
}, "C").start();
}
}
// 资源类 仅包含属性和方法
class Ticket {
private int num = 20;
public synchronized void sale() {
if (num > 0) {
System.out.println(Thread.currentThread().getName() + "卖出第" + (num--) + "剩余" + num);
}
}
}