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);
        }
    }
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号