卖票问题

Posted on   FLGB  阅读(254)  评论(0编辑  收藏  举报
复制代码
//三个售票员卖票

import java.util.concurrent.locks.ReentrantLock;

public class SaleTickets {
    public static void main(String[] args) {
        Ticket ticket = new Ticket();
        for (int j = 1; j < 4; j++) {//开三个线程
            new Thread(() -> {
                for (int i = 0; i < 40; i++) {
                    ticket.sale();
                }
            }, "售票员" + String.valueOf(j)).start();
        }

    }

}

class Ticket {
    private static int ticketscounts = 30;
    ReentrantLock reentrantLock = new ReentrantLock();

    public void sale() {
        reentrantLock.lock();
        try {
            if (ticketscounts > 0) {
                System.out.println(Thread.currentThread().getName() + "卖掉倒数第" + ticketscounts + "");
                ticketscounts--;
            }
        } finally {
            // TODO: handle finally clause
            reentrantLock.unlock();
        }
    }

}
复制代码

运行结果:(电脑性能好,参数放大十倍参能看出效果)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
售票员2卖掉倒数第300票
售票员2卖掉倒数第299票
售票员2卖掉倒数第298票
售票员2卖掉倒数第297票
售票员2卖掉倒数第296票
售票员2卖掉倒数第295票
售票员2卖掉倒数第294票
售票员2卖掉倒数第293票
售票员2卖掉倒数第292票
售票员2卖掉倒数第291票
售票员2卖掉倒数第290票
售票员2卖掉倒数第289票
售票员2卖掉倒数第288票
售票员2卖掉倒数第287票
售票员2卖掉倒数第286票
售票员2卖掉倒数第285票
售票员2卖掉倒数第284票
售票员2卖掉倒数第283票
售票员2卖掉倒数第282票
售票员2卖掉倒数第281票
售票员2卖掉倒数第280票
售票员2卖掉倒数第279票
售票员2卖掉倒数第278票
售票员2卖掉倒数第277票
售票员2卖掉倒数第276票
售票员2卖掉倒数第275票
售票员2卖掉倒数第274票
售票员2卖掉倒数第273票
售票员2卖掉倒数第272票
售票员2卖掉倒数第271票
售票员2卖掉倒数第270票
售票员2卖掉倒数第269票
售票员2卖掉倒数第268票
售票员2卖掉倒数第267票
售票员2卖掉倒数第266票
售票员2卖掉倒数第265票
售票员2卖掉倒数第264票
售票员1卖掉倒数第263票
售票员1卖掉倒数第262票
售票员1卖掉倒数第261票
售票员1卖掉倒数第260票
售票员1卖掉倒数第259票
售票员1卖掉倒数第258票
售票员1卖掉倒数第257票
售票员1卖掉倒数第256票
售票员1卖掉倒数第255票
售票员1卖掉倒数第254票
售票员1卖掉倒数第253票
售票员1卖掉倒数第252票
售票员1卖掉倒数第251票
售票员1卖掉倒数第250票
售票员1卖掉倒数第249票
售票员1卖掉倒数第248票
售票员1卖掉倒数第247票
售票员1卖掉倒数第246票
售票员1卖掉倒数第245票
售票员1卖掉倒数第244票
售票员1卖掉倒数第243票
售票员1卖掉倒数第242票
售票员1卖掉倒数第241票
售票员1卖掉倒数第240票
售票员1卖掉倒数第239票
售票员1卖掉倒数第238票
售票员1卖掉倒数第237票
售票员1卖掉倒数第236票
售票员1卖掉倒数第235票
售票员1卖掉倒数第234票
售票员1卖掉倒数第233票
售票员1卖掉倒数第232票
售票员1卖掉倒数第231票
售票员1卖掉倒数第230票
售票员1卖掉倒数第229票
售票员1卖掉倒数第228票
售票员1卖掉倒数第227票
售票员1卖掉倒数第226票
售票员1卖掉倒数第225票
售票员1卖掉倒数第224票
售票员1卖掉倒数第223票
售票员1卖掉倒数第222票
售票员1卖掉倒数第221票
售票员1卖掉倒数第220票
售票员1卖掉倒数第219票
售票员1卖掉倒数第218票
售票员1卖掉倒数第217票
售票员1卖掉倒数第216票
售票员1卖掉倒数第215票
售票员1卖掉倒数第214票
售票员1卖掉倒数第213票
售票员1卖掉倒数第212票
售票员1卖掉倒数第211票
售票员1卖掉倒数第210票
售票员1卖掉倒数第209票
售票员1卖掉倒数第208票
售票员1卖掉倒数第207票
售票员1卖掉倒数第206票
售票员1卖掉倒数第205票
售票员1卖掉倒数第204票
售票员1卖掉倒数第203票
售票员1卖掉倒数第202票
售票员1卖掉倒数第201票
售票员1卖掉倒数第200票
售票员1卖掉倒数第199票
售票员1卖掉倒数第198票
售票员1卖掉倒数第197票
售票员1卖掉倒数第196票
售票员1卖掉倒数第195票
售票员1卖掉倒数第194票
售票员1卖掉倒数第193票
售票员1卖掉倒数第192票
售票员1卖掉倒数第191票
售票员1卖掉倒数第190票
售票员1卖掉倒数第189票
售票员1卖掉倒数第188票
售票员1卖掉倒数第187票
售票员1卖掉倒数第186票
售票员1卖掉倒数第185票
售票员1卖掉倒数第184票
售票员1卖掉倒数第183票
售票员1卖掉倒数第182票
售票员1卖掉倒数第181票
售票员1卖掉倒数第180票
售票员1卖掉倒数第179票
售票员1卖掉倒数第178票
售票员1卖掉倒数第177票
售票员1卖掉倒数第176票
售票员1卖掉倒数第175票
售票员1卖掉倒数第174票
售票员1卖掉倒数第173票
售票员1卖掉倒数第172票
售票员1卖掉倒数第171票
售票员1卖掉倒数第170票
售票员1卖掉倒数第169票
售票员1卖掉倒数第168票
售票员1卖掉倒数第167票
售票员1卖掉倒数第166票
售票员1卖掉倒数第165票
售票员1卖掉倒数第164票
售票员1卖掉倒数第163票
售票员1卖掉倒数第162票
售票员1卖掉倒数第161票
售票员1卖掉倒数第160票
售票员1卖掉倒数第159票
售票员1卖掉倒数第158票
售票员1卖掉倒数第157票
售票员1卖掉倒数第156票
售票员1卖掉倒数第155票
售票员1卖掉倒数第154票
售票员1卖掉倒数第153票
售票员1卖掉倒数第152票
售票员1卖掉倒数第151票
售票员1卖掉倒数第150票
售票员1卖掉倒数第149票
售票员1卖掉倒数第148票
售票员1卖掉倒数第147票
售票员1卖掉倒数第146票
售票员1卖掉倒数第145票
售票员1卖掉倒数第144票
售票员1卖掉倒数第143票
售票员1卖掉倒数第142票
售票员1卖掉倒数第141票
售票员1卖掉倒数第140票
售票员1卖掉倒数第139票
售票员1卖掉倒数第138票
售票员1卖掉倒数第137票
售票员1卖掉倒数第136票
售票员1卖掉倒数第135票
售票员1卖掉倒数第134票
售票员1卖掉倒数第133票
售票员1卖掉倒数第132票
售票员1卖掉倒数第131票
售票员1卖掉倒数第130票
售票员1卖掉倒数第129票
售票员1卖掉倒数第128票
售票员1卖掉倒数第127票
售票员1卖掉倒数第126票
售票员1卖掉倒数第125票
售票员1卖掉倒数第124票
售票员1卖掉倒数第123票
售票员1卖掉倒数第122票
售票员1卖掉倒数第121票
售票员1卖掉倒数第120票
售票员1卖掉倒数第119票
售票员1卖掉倒数第118票
售票员1卖掉倒数第117票
售票员1卖掉倒数第116票
售票员1卖掉倒数第115票
售票员1卖掉倒数第114票
售票员1卖掉倒数第113票
售票员1卖掉倒数第112票
售票员1卖掉倒数第111票
售票员1卖掉倒数第110票
售票员1卖掉倒数第109票
售票员1卖掉倒数第108票
售票员1卖掉倒数第107票
售票员1卖掉倒数第106票
售票员1卖掉倒数第105票
售票员1卖掉倒数第104票
售票员1卖掉倒数第103票
售票员1卖掉倒数第102票
售票员1卖掉倒数第101票
售票员1卖掉倒数第100票
售票员1卖掉倒数第99票
售票员1卖掉倒数第98票
售票员1卖掉倒数第97票
售票员1卖掉倒数第96票
售票员1卖掉倒数第95票
售票员1卖掉倒数第94票
售票员1卖掉倒数第93票
售票员1卖掉倒数第92票
售票员1卖掉倒数第91票
售票员1卖掉倒数第90票
售票员1卖掉倒数第89票
售票员1卖掉倒数第88票
售票员1卖掉倒数第87票
售票员1卖掉倒数第86票
售票员1卖掉倒数第85票
售票员1卖掉倒数第84票
售票员1卖掉倒数第83票
售票员1卖掉倒数第82票
售票员1卖掉倒数第81票
售票员1卖掉倒数第80票
售票员1卖掉倒数第79票
售票员1卖掉倒数第78票
售票员1卖掉倒数第77票
售票员1卖掉倒数第76票
售票员1卖掉倒数第75票
售票员1卖掉倒数第74票
售票员1卖掉倒数第73票
售票员1卖掉倒数第72票
售票员1卖掉倒数第71票
售票员1卖掉倒数第70票
售票员1卖掉倒数第69票
售票员1卖掉倒数第68票
售票员1卖掉倒数第67票
售票员1卖掉倒数第66票
售票员1卖掉倒数第65票
售票员1卖掉倒数第64票
售票员1卖掉倒数第63票
售票员1卖掉倒数第62票
售票员1卖掉倒数第61票
售票员1卖掉倒数第60票
售票员1卖掉倒数第59票
售票员1卖掉倒数第58票
售票员1卖掉倒数第57票
售票员1卖掉倒数第56票
售票员1卖掉倒数第55票
售票员1卖掉倒数第54票
售票员1卖掉倒数第53票
售票员1卖掉倒数第52票
售票员1卖掉倒数第51票
售票员1卖掉倒数第50票
售票员1卖掉倒数第49票
售票员1卖掉倒数第48票
售票员1卖掉倒数第47票
售票员1卖掉倒数第46票
售票员1卖掉倒数第45票
售票员1卖掉倒数第44票
售票员1卖掉倒数第43票
售票员1卖掉倒数第42票
售票员1卖掉倒数第41票
售票员1卖掉倒数第40票
售票员1卖掉倒数第39票
售票员1卖掉倒数第38票
售票员1卖掉倒数第37票
售票员1卖掉倒数第36票
售票员1卖掉倒数第35票
售票员1卖掉倒数第34票
售票员1卖掉倒数第33票
售票员1卖掉倒数第32票
售票员1卖掉倒数第31票
售票员1卖掉倒数第30票
售票员1卖掉倒数第29票
售票员1卖掉倒数第28票
售票员1卖掉倒数第27票
售票员1卖掉倒数第26票
售票员1卖掉倒数第25票
售票员1卖掉倒数第24票
售票员1卖掉倒数第23票
售票员1卖掉倒数第22票
售票员1卖掉倒数第21票
售票员1卖掉倒数第20票
售票员1卖掉倒数第19票
售票员1卖掉倒数第18票
售票员1卖掉倒数第17票
售票员1卖掉倒数第16票
售票员1卖掉倒数第15票
售票员1卖掉倒数第14票
售票员1卖掉倒数第13票
售票员1卖掉倒数第12票
售票员1卖掉倒数第11票
售票员1卖掉倒数第10票
售票员1卖掉倒数第9票
售票员1卖掉倒数第8票
售票员1卖掉倒数第7票
售票员1卖掉倒数第6票
售票员1卖掉倒数第5票
售票员1卖掉倒数第4票
售票员1卖掉倒数第3票
售票员1卖掉倒数第2票
售票员1卖掉倒数第1票

  

编辑推荐:
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 语音处理 开源项目 EchoSharp
· drools 规则引擎和 solon-flow 哪个好?solon-flow 简明教程

随笔 - 205, 文章 - 1, 评论 - 7, 阅读 - 14万

Copyright © 2025 FLGB
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示