多线程/售票

1.1进程/线程

1.2并发/并行

题目 : 三个售票员 卖出 30张票

笔记:如何编写企业级的多线程代码

固定的变成套路+模板是什么?

1 在高内聚低耦合的前提下,线程  操作   资源类

1.1一言不合先创建一个资源类

 1 public class Ticket {
 2         private int num = 30;
 3         Lock lock = new ReentrantLock();
 4 
 5         public void sale(){
 6             lock.lock();
 7             try{
 8                 if(num>0){
 9                     
10  System.out.println(Thread.currentThread().getName()+"\\t卖 
11   出第:"+(num--)+"\\t还剩下:"+num);
12                 }
13             }catch(Exception e){
14                 e.printStackTrace();
15             }finally {
16                 lock.unlock();
17             }
18         }
19     public static void main(String[] args) {
20 
21         Ticket ticket = new Ticket();
22         new Thread(()->{ for (int i = 0; i <= 40 ; i++) ticket.sale();},"A").start();
23         new Thread(()->{ for (int i = 0; i <= 40 ; i++) ticket.sale();},"B").start();
24         new Thread(()->{ for (int i = 0; i <= 40 ; i++) ticket.sale();},"C").start();
25     }

猜你喜欢

转载自www.cnblogs.com/sbnj7/p/12442697.html