A火车站下面有三个火车票代售点,假如A到B的火车票总共是200张,如何用程序来实现三个售票点同时卖票的功能。

import java.util.*;

class A implements Runnable {
    private int p,a1,a2,a3;
    String s1,s2,s3;
    A(String a,String b,String c){
        s1=a;s2=b;s3=c;
        a1=a2=a3=0;
    }
    void setp(int a){
        p=a;
    }
    public void run(){
        while(true){
                --p;
                String s=Thread.currentThread().getName();
                if(s.equals(s1)){
                    System.out.println(s1+"卖出了1张票,还剩票数"+p);
                    ++a1;
                    System.out.println(a1+" "+a2+" "+a3);
                    if(p<=0){
                        System.out.println(s1+"一共卖了"+a1);
                        return;
                    }
                }
                else if(s.equals(s2)){
                    System.out.println(s2+"卖出了1张票,还剩票数"+p);
                    ++a2;
                    if(p<=0){
                        System.out.println(s2+"一共卖了"+a2);
                        return;
                    }
                }
                else if(s.equals(s3)){

                    System.out.println(s3+"卖出了1张票,还剩票数"+p);
                    ++a3;
                    if(p<=0){
                        System.out.println(s3+"一共卖了"+a3);
                        return;
                    }
                }
                try{
                    Thread.sleep(100);
                }
                catch(InterruptedException e){}
            }
    }
}

public class Main{
    public static void main(String args[ ]){
         A d=new A("1号","2号","3号");
         Thread a,b,c;
         a=new Thread(d);
         b=new Thread(d);
         c=new Thread(d);
         a.setName("1号");
         b.setName("2号");
         c.setName("3号");
         d.setp(200);
         a.start();
         b.start();
         c.start();
    }
}

结果:
2号卖出了1张票,还剩票数197
1号卖出了1张票,还剩票数197
3号卖出了1张票,还剩票数197
1 1 1
2号卖出了1张票,还剩票数196
3号卖出了1张票,还剩票数195
1号卖出了1张票,还剩票数194
2 2 2
1号卖出了1张票,还剩票数193
3 2 2
2号卖出了1张票,还剩票数192
3号卖出了1张票,还剩票数191
1号卖出了1张票,还剩票数190
4 3 3
2号卖出了1张票,还剩票数189
3号卖出了1张票,还剩票数188
1号卖出了1张票,还剩票数187
5 4 4
2号卖出了1张票,还剩票数186
3号卖出了1张票,还剩票数185
1号卖出了1张票,还剩票数184
6 5 5
2号卖出了1张票,还剩票数183
3号卖出了1张票,还剩票数182
1号卖出了1张票,还剩票数181
7 6 6
3号卖出了1张票,还剩票数180
2号卖出了1张票,还剩票数179
1号卖出了1张票,还剩票数178
2号卖出了1张票,还剩票数176
3号卖出了1张票,还剩票数177
8 7 7
2号卖出了1张票,还剩票数175
1号卖出了1张票,还剩票数173
3号卖出了1张票,还剩票数174
9 9 8
2号卖出了1张票,还剩票数172
3号卖出了1张票,还剩票数171
1号卖出了1张票,还剩票数170
10 10 10
2号卖出了1张票,还剩票数169
3号卖出了1张票,还剩票数168
1号卖出了1张票,还剩票数167
11 11 11
2号卖出了1张票,还剩票数166
3号卖出了1张票,还剩票数165
1号卖出了1张票,还剩票数164
12 12 12
2号卖出了1张票,还剩票数163
3号卖出了1张票,还剩票数162
1号卖出了1张票,还剩票数161
13 13 13
2号卖出了1张票,还剩票数160
3号卖出了1张票,还剩票数159
1号卖出了1张票,还剩票数158
14 14 14
2号卖出了1张票,还剩票数157
3号卖出了1张票,还剩票数156
1号卖出了1张票,还剩票数155
15 15 15
3号卖出了1张票,还剩票数153
2号卖出了1张票,还剩票数153
1号卖出了1张票,还剩票数152
16 16 16
3号卖出了1张票,还剩票数151
2号卖出了1张票,还剩票数150
1号卖出了1张票,还剩票数149
17 17 17
3号卖出了1张票,还剩票数148
2号卖出了1张票,还剩票数147
1号卖出了1张票,还剩票数146
18 18 18
3号卖出了1张票,还剩票数145
1号卖出了1张票,还剩票数144
19 18 19
2号卖出了1张票,还剩票数143
3号卖出了1张票,还剩票数142
2号卖出了1张票,还剩票数141
1号卖出了1张票,还剩票数140
20 20 20
3号卖出了1张票,还剩票数139
2号卖出了1张票,还剩票数138
1号卖出了1张票,还剩票数137
21 21 21
3号卖出了1张票,还剩票数136
2号卖出了1张票,还剩票数135
1号卖出了1张票,还剩票数134
22 22 22
3号卖出了1张票,还剩票数133
2号卖出了1张票,还剩票数132
1号卖出了1张票,还剩票数131
23 23 23
3号卖出了1张票,还剩票数130
2号卖出了1张票,还剩票数129
1号卖出了1张票,还剩票数128
24 24 24
3号卖出了1张票,还剩票数127
2号卖出了1张票,还剩票数126
1号卖出了1张票,还剩票数125
25 25 25
3号卖出了1张票,还剩票数124
2号卖出了1张票,还剩票数123
1号卖出了1张票,还剩票数122
26 26 26
3号卖出了1张票,还剩票数121
2号卖出了1张票,还剩票数120
1号卖出了1张票,还剩票数119
27 27 27
3号卖出了1张票,还剩票数118
2号卖出了1张票,还剩票数117
1号卖出了1张票,还剩票数116
28 28 28
3号卖出了1张票,还剩票数115
2号卖出了1张票,还剩票数114
1号卖出了1张票,还剩票数113
29 29 29
3号卖出了1张票,还剩票数112
2号卖出了1张票,还剩票数111
1号卖出了1张票,还剩票数110
30 30 30
3号卖出了1张票,还剩票数109
2号卖出了1张票,还剩票数108
1号卖出了1张票,还剩票数107
31 31 31
2号卖出了1张票,还剩票数106
3号卖出了1张票,还剩票数105
1号卖出了1张票,还剩票数104
32 32 32
2号卖出了1张票,还剩票数103
3号卖出了1张票,还剩票数102
1号卖出了1张票,还剩票数101
33 33 33
2号卖出了1张票,还剩票数100
3号卖出了1张票,还剩票数99
1号卖出了1张票,还剩票数98
34 34 34
2号卖出了1张票,还剩票数97
3号卖出了1张票,还剩票数96
1号卖出了1张票,还剩票数95
35 35 35
2号卖出了1张票,还剩票数94
3号卖出了1张票,还剩票数93
1号卖出了1张票,还剩票数92
36 36 36
2号卖出了1张票,还剩票数91
3号卖出了1张票,还剩票数90
1号卖出了1张票,还剩票数89
37 37 37
2号卖出了1张票,还剩票数88
3号卖出了1张票,还剩票数87
1号卖出了1张票,还剩票数86
38 38 38
2号卖出了1张票,还剩票数85
3号卖出了1张票,还剩票数84
1号卖出了1张票,还剩票数83
39 39 39
2号卖出了1张票,还剩票数82
3号卖出了1张票,还剩票数81
1号卖出了1张票,还剩票数80
40 40 40
2号卖出了1张票,还剩票数79
3号卖出了1张票,还剩票数78
1号卖出了1张票,还剩票数77
41 41 41
2号卖出了1张票,还剩票数76
3号卖出了1张票,还剩票数75
1号卖出了1张票,还剩票数74
42 42 42
2号卖出了1张票,还剩票数73
3号卖出了1张票,还剩票数72
1号卖出了1张票,还剩票数71
43 43 43
2号卖出了1张票,还剩票数70
3号卖出了1张票,还剩票数69
1号卖出了1张票,还剩票数68
44 44 44
2号卖出了1张票,还剩票数67
3号卖出了1张票,还剩票数66
1号卖出了1张票,还剩票数65
45 45 45
2号卖出了1张票,还剩票数64
3号卖出了1张票,还剩票数63
1号卖出了1张票,还剩票数62
46 46 46
2号卖出了1张票,还剩票数61
3号卖出了1张票,还剩票数60
1号卖出了1张票,还剩票数59
47 47 47
2号卖出了1张票,还剩票数58
3号卖出了1张票,还剩票数57
1号卖出了1张票,还剩票数56
48 48 48
2号卖出了1张票,还剩票数55
3号卖出了1张票,还剩票数54
1号卖出了1张票,还剩票数53
49 49 49
2号卖出了1张票,还剩票数52
3号卖出了1张票,还剩票数51
1号卖出了1张票,还剩票数50
50 50 50
2号卖出了1张票,还剩票数49
3号卖出了1张票,还剩票数48
1号卖出了1张票,还剩票数47
51 51 51
2号卖出了1张票,还剩票数46
3号卖出了1张票,还剩票数45
1号卖出了1张票,还剩票数44
52 52 52
2号卖出了1张票,还剩票数43
3号卖出了1张票,还剩票数42
1号卖出了1张票,还剩票数41
53 53 53
2号卖出了1张票,还剩票数40
3号卖出了1张票,还剩票数39
1号卖出了1张票,还剩票数38
54 54 54
2号卖出了1张票,还剩票数37
3号卖出了1张票,还剩票数36
1号卖出了1张票,还剩票数35
55 55 55
2号卖出了1张票,还剩票数34
3号卖出了1张票,还剩票数33
1号卖出了1张票,还剩票数32
56 56 56
2号卖出了1张票,还剩票数31
3号卖出了1张票,还剩票数30
1号卖出了1张票,还剩票数29
57 57 57
2号卖出了1张票,还剩票数28
3号卖出了1张票,还剩票数27
1号卖出了1张票,还剩票数26
58 58 58
2号卖出了1张票,还剩票数25
3号卖出了1张票,还剩票数24
1号卖出了1张票,还剩票数23
59 59 59
2号卖出了1张票,还剩票数22
3号卖出了1张票,还剩票数21
1号卖出了1张票,还剩票数20
60 60 60
2号卖出了1张票,还剩票数19
3号卖出了1张票,还剩票数18
1号卖出了1张票,还剩票数17
61 61 61
2号卖出了1张票,还剩票数16
3号卖出了1张票,还剩票数15
1号卖出了1张票,还剩票数14
62 62 62
2号卖出了1张票,还剩票数13
3号卖出了1张票,还剩票数12
1号卖出了1张票,还剩票数11
63 63 63
2号卖出了1张票,还剩票数10
3号卖出了1张票,还剩票数9
1号卖出了1张票,还剩票数8
64 64 64
2号卖出了1张票,还剩票数7
3号卖出了1张票,还剩票数6
1号卖出了1张票,还剩票数5
65 65 65
2号卖出了1张票,还剩票数4
3号卖出了1张票,还剩票数3
1号卖出了1张票,还剩票数2
66 66 66
2号卖出了1张票,还剩票数1
3号卖出了1张票,还剩票数0
3号一共卖了67
1号卖出了1张票,还剩票数-1
67 67 67
1号一共卖了67
2号卖出了1张票,还剩票数-2
2号一共卖了68
0

Leave a Reply

Your email address will not be published.