publicclassTicketTest{/**
* @param args
*/publicstaticvoidmain(String[] args){
Ticket ticket =newTicket();newThread(()->{for(int i =1; i <=100; i++) ticket.saleTicket();},"A").start();newThread(()->{for(int i =1; i <=100; i++) ticket.saleTicket();},"B").start();newThread(()->{for(int i =1; i <=100; i++) ticket.saleTicket();},"C").start();}}
完整代码
package com.thread.demo;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/**
* @description: 多线程
*/classTicket{private Integer nunber =100;private Lock lock =newReentrantLock();publicvoidsaleTicket(){
lock.lock();try{if(nunber >0){
System.out.println(Thread.currentThread().getName()+"\t卖出第:"+(nunber--)+"\t还剩下: "+nunber);}}catch(Exception e){
e.printStackTrace();}finally{
lock.unlock();}}}publicclassTicketTest{/**
* 题目: 三个售票员 卖出 100张票
*在高内聚低耦合的前提下,线程 操作(方法) 资源类
* @param args
*/publicstaticvoidmain(String[] args){
Ticket ticket =newTicket();newThread(()->{for(int i =1; i <=100; i++) ticket.saleTicket();},"A").start();newThread(()->{for(int i =1; i <=100; i++) ticket.saleTicket();},"B").start();newThread(()->{for(int i =1; i <=100; i++) ticket.saleTicket();},"C").start();}}