龟兔赛跑(多线程练习题)

1.龟兔赛跑新规:

规则:龟兔同时起步,终点为100米,兔子跑步的能力强,乌龟跑步的能力弱(优先级的设置)

途中:        1.兔子跑到40米的时候,看不见乌龟小睡10毫秒,醒来接着跑
      2.兔子跑到80米的时候,还是看不见乌龟,再等等他,接着跑
      3.兔子跑到100米到达终点

                     4.乌龟从一开始就一直跑,直至到达终点

 

代码实现:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.thread;
//乌龟
public class Tortoise extends Thread {
    public Tortoise(String name) {
        super(name);
    }
 
    @Override
    public void run() {
        System.out.println("乌龟开始起跑了-----------------");
        for (int i=0;i<=100;i++){
            System.out.println(this.getName()+"跑了"+i+"米");
            if (i==100){
                System.out.println(this.getName()+"跑完了全程");
            }
        }
    }
}

 

  

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
package com.thread;
//兔子
public class Rubbit implements Runnable {
    private String name;
 
    public Rubbit(String name) {
        this.name = name;
    }
 
    public String getName() {
        return name;
    }
 
    @Override
    public void run() {
        System.out.println("兔子开始起跑了---------------");
        for (int i=0;i<=100;i++){
            System.out.println(this.getName()+"跑了"+i+"米");
            if (i==40){
                try {
                    System.out.println(this.getName()+"看不见乌龟小睡一会");
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
 
 
            if (i==80){
                System.out.println(this.getName()+"还是看不见乌龟,等会他");
                Thread.yield();
            }
 
            if (i==100){
                System.out.println(this.getName()+"跑完了全程");
            }
        }
    }
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.thread;
 
public class StartTest {
    public static void main(String[] args) {
        Tortoise tortoise = new Tortoise("乌龟");
        Rubbit rubbit =new Rubbit("兔子");
 
        Thread thread = new Thread(rubbit);
 
        tortoise.setPriority(1);
        thread.setPriority(10);
 
        thread.start();
        tortoise.start();
    }
}

  

运行结果:

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
乌龟开始起跑了-----------------
兔子开始起跑了---------------
乌龟跑了0
乌龟跑了1
乌龟跑了2
兔子跑了0
兔子跑了1
兔子跑了2
兔子跑了3
兔子跑了4
兔子跑了5
兔子跑了6
兔子跑了7
兔子跑了8
乌龟跑了3
兔子跑了9
兔子跑了10
兔子跑了11
兔子跑了12
兔子跑了13
兔子跑了14
兔子跑了15
兔子跑了16
兔子跑了17
兔子跑了18
兔子跑了19
兔子跑了20
兔子跑了21
兔子跑了22
兔子跑了23
兔子跑了24
兔子跑了25
兔子跑了26
乌龟跑了4
兔子跑了27
兔子跑了28
兔子跑了29
兔子跑了30
兔子跑了31
兔子跑了32
兔子跑了33
兔子跑了34
兔子跑了35
兔子跑了36
兔子跑了37
兔子跑了38
兔子跑了39
兔子跑了40
乌龟跑了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
乌龟跑完了全程
兔子跑了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
兔子跑完了全程

  

 



posted @   泰斗贤若如  阅读(1243)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示