1. 程式人生 > >多線程13--多線程並發購票--低效的線程安全的車票容器

多線程13--多線程並發購票--低效的線程安全的車票容器

hide thread get empty ide final closed [] 安全

1. final List<String> synchronizedList = Collections.synchronizedList(tickets);//list變成線程安全的

技術分享圖片
  1 public class Tickets {
  2     public static void main(String[] args) {
  3         //final Vector<String> tickets = new Vector<String>();
  4         final List<String> tickets = new
ArrayList<>(); 5 for (int i = 1; i <= 100; i++) { 6 tickets.add("火車票"+i); 7 } 8 final List<String> synchronizedList = Collections.synchronizedList(tickets);//list變成線程安全的 9 10 //創建10個線程 11 for (int i = 1; i <= 10; i++) { 12 new
Thread("線程"+i){ 13 public void run() { 14 while(true){ 15 if(tickets.isEmpty()) break; 16 System.out.println(Thread.currentThread().getName()+"購買了火車票"+synchronizedList.remove(0)); 17 } 18 }
19 }.start(); 20 } 21 } 22 /* 23 線程1購買了火車票火車票1 24 線程1購買了火車票火車票2 25 線程1購買了火車票火車票3 26 線程1購買了火車票火車票4 27 線程1購買了火車票火車票5 28 線程1購買了火車票火車票6 29 線程1購買了火車票火車票7 30 線程1購買了火車票火車票8 31 線程1購買了火車票火車票9 32 線程1購買了火車票火車票10 33 線程1購買了火車票火車票11 34 線程1購買了火車票火車票12 35 線程1購買了火車票火車票13 36 線程1購買了火車票火車票14 37 線程1購買了火車票火車票15 38 線程1購買了火車票火車票16 39 線程1購買了火車票火車票17 40 線程1購買了火車票火車票18 41 線程1購買了火車票火車票19 42 線程1購買了火車票火車票20 43 線程1購買了火車票火車票21 44 線程1購買了火車票火車票22 45 線程1購買了火車票火車票23 46 線程1購買了火車票火車票24 47 線程1購買了火車票火車票25 48 線程1購買了火車票火車票26 49 線程1購買了火車票火車票27 50 線程1購買了火車票火車票28 51 線程1購買了火車票火車票29 52 線程2購買了火車票火車票30 53 線程1購買了火車票火車票31 54 線程1購買了火車票火車票32 55 線程1購買了火車票火車票33 56 線程1購買了火車票火車票34 57 線程1購買了火車票火車票35 58 線程1購買了火車票火車票36 59 線程1購買了火車票火車票37 60 線程1購買了火車票火車票38 61 線程1購買了火車票火車票39 62 線程1購買了火車票火車票40 63 線程1購買了火車票火車票41 64 線程3購買了火車票火車票42 65 線程2購買了火車票火車票44 66 線程1購買了火車票火車票43 67 線程2購買了火車票火車票46 68 線程3購買了火車票火車票45 69 線程2購買了火車票火車票48 70 線程1購買了火車票火車票47 71 線程2購買了火車票火車票50 72 線程3購買了火車票火車票49 73 線程2購買了火車票火車票52 74 線程1購買了火車票火車票51 75 線程2購買了火車票火車票54 76 線程3購買了火車票火車票53 77 線程2購買了火車票火車票56 78 線程1購買了火車票火車票55 79 線程2購買了火車票火車票58 80 線程3購買了火車票火車票57 81 線程2購買了火車票火車票60 82 線程1購買了火車票火車票59 83 線程2購買了火車票火車票62 84 線程3購買了火車票火車票61 85 線程2購買了火車票火車票64 86 線程1購買了火車票火車票63 87 線程4購買了火車票火車票67 88 線程2購買了火車票火車票66 89 線程3購買了火車票火車票65 90 線程2購買了火車票火車票70 91 線程4購買了火車票火車票69 92 線程1購買了火車票火車票68 93 線程4購買了火車票火車票73 94 線程2購買了火車票火車票72 95 線程3購買了火車票火車票71 96 線程2購買了火車票火車票76 97 線程4購買了火車票火車票75 98 線程1購買了火車票火車票74 99 線程5購買了火車票火車票80 100 線程4購買了火車票火車票79 101 線程2購買了火車票火車票78 102 線程3購買了火車票火車票77 103 線程2購買了火車票火車票84 104 線程4購買了火車票火車票83 105 線程5購買了火車票火車票82 106 線程1購買了火車票火車票81 107 線程5購買了火車票火車票88 108 線程4購買了火車票火車票87 109 線程2購買了火車票火車票86 110 線程3購買了火車票火車票85 111 線程2購買了火車票火車票92 112 線程4購買了火車票火車票91 113 線程5購買了火車票火車票90 114 線程4購買了火車票火車票95 115 線程6購買了火車票火車票94 116 線程1購買了火車票火車票89 117 線程4購買了火車票火車票98 118 線程2購買了火車票火車票97 119 線程5購買了火車票火車票96 120 線程3購買了火車票火車票93 121 線程6購買了火車票火車票100 122 線程1購買了火車票火車票99 */ 123 124 }
View Code

多線程13--多線程並發購票--低效的線程安全的車票容器