一道java作业题

题目是:分别使用Thread和Runnable写具有两个同样功能的线程,打印从1到10(要能区分是谁打印的)。启动这两个线程观看程序输出。给靠后start的线程设置优先级... 题目是:分别使用Thread和Runnable写具有两个同样功能的线程,打印从1到10(要能区分是谁打印的)。启动这两个线程观看程序输出。给靠后start的线程设置优先级为6,再执行一次,输出结果有区别吗?如果给它的优先级设置为8呢?打印从1到100,1到1000时,结果怎样?试简单解释一下程序输出结果。
我要完整的解答,如果满意的话,分数还可以再追加。
期待更好的回答,对于2楼的答案,有两点不足:一是两个线程没有区分是谁打印的,二是把优先级设置为6和8,有什么区别吗?
展开
 我来答
我是谁我在哪我要干什么呢
2012-05-18 · TA获得超过560个赞
知道小有建树答主
回答量:350
采纳率:100%
帮助的人:370万
展开全部
程序及测试结果如下:自己看结果总结一下。可以自己运行,最后设置为1000.更为明显(设置为1000,运行结果太长贴不上)
public class MyThread extends Thread {
private int i;
public void setI(int i){
this.i=i;
}
public void run(){
for(int j=1;j<=i;j++){
System.out.print("我是线程A: ");//+Thread.currentThread().getName()+":");
System.out.println(j);
}
}
}
public class MyThread1 implements Runnable {
private int i;
public void setI(int i) {
this.i = i;
}
@Override
public void run() {
for(int j=1;j<=i;j++){
System.out.print("我是线程B: ");//+Thread.currentThread().getName()+":");
System.out.println(j);
}
}
}
public class TestThread {
public static void main(String[] args) throws InterruptedException {
System.out.println("两线程打印1~10执行过程如下(A先启动,B后启动):");

MyThread t1=new MyThread();
MyThread1 myThread1=new MyThread1();
Thread t2=new Thread(myThread1);
t1.setI(10);
myThread1.setI(10);
t1.start();
t2.start();
Thread.sleep(1000);

System.out.println("将后启动线程B优先级设为6打印1~10");
t1=new MyThread();
myThread1=new MyThread1();
t2=new Thread(myThread1);
t1.setI(10);
myThread1.setI(10);
t2.setPriority(6);
t1.start();
t2.start();
Thread.sleep(1000);

System.out.println("将后启动线程B优先级设为8,打印1~100");
t1=new MyThread();
myThread1=new MyThread1();
t2=new Thread(myThread1);
t1.setI(100);
myThread1.setI(100);
t2.setPriority(8);
t1.start();
t2.start();
Thread.sleep(1000);

System.out.println("将后启动线程B优先级设为8,打印1~200");
t1=new MyThread();
myThread1=new MyThread1();
t2=new Thread(myThread1);
t1.setI(200);
myThread1.setI(200);
t2.setPriority(8);
t1.start();
t2.start();
}
}
运行结果:
两线程打印1~10执行过程如下(A先启动,B后启动):
我是线程A: 1
我是线程A: 2
我是线程A: 3
我是线程A: 4
我是线程A: 5
我是线程A: 6
我是线程A: 7
我是线程A: 8
我是线程A: 9
我是线程A: 10
我是线程B: 1
我是线程B: 2
我是线程B: 3
我是线程B: 4
我是线程B: 5
我是线程B: 6
我是线程B: 7
我是线程B: 8
我是线程B: 9
我是线程B: 10
将后启动线程B优先级设为6打印1~10
我是线程B: 1
我是线程B: 2
我是线程B: 3
我是线程B: 4
我是线程B: 5
我是线程B: 6
我是线程B: 7
我是线程B: 8
我是线程B: 9
我是线程B: 10
我是线程A: 1
我是线程A: 2
我是线程A: 3
我是线程A: 4
我是线程A: 5
我是线程A: 6
我是线程A: 7
我是线程A: 8
我是线程A: 9
我是线程A: 10
将后启动线程B优先级设为8,打印1~100
我是线程A: 1
我是线程A: 2
我是线程A: 3
我是线程A: 4
我是线程A: 5
我是线程A: 6
我是线程B: 1
我是线程B: 2
我是线程B: 3
我是线程B: 4
我是线程B: 5
我是线程B: 6
我是线程B: 7
我是线程B: 8
我是线程B: 9
我是线程B: 10
我是线程B: 11
我是线程B: 12
我是线程B: 13
我是线程B: 14
我是线程B: 15
我是线程B: 16
我是线程B: 17
我是线程B: 18
我是线程B: 19
我是线程B: 20
我是线程B: 21
我是线程B: 22
我是线程B: 23
我是线程B: 24
我是线程B: 25
我是线程B: 26
我是线程B: 27
我是线程B: 28
我是线程B: 29
我是线程B: 30
我是线程B: 31
我是线程B: 32
我是线程B: 33
我是线程B: 34
我是线程B: 35
我是线程B: 36
我是线程B: 37
我是线程B: 38
我是线程B: 39
我是线程B: 40
我是线程B: 41
我是线程B: 42
我是线程B: 43
我是线程B: 44
我是线程B: 45
我是线程B: 46
我是线程B: 47
我是线程B: 48
我是线程B: 49
我是线程B: 50
我是线程B: 51
我是线程B: 52
我是线程B: 53
我是线程B: 54
我是线程B: 55
我是线程B: 56
我是线程B: 57
我是线程B: 58
我是线程B: 59
我是线程B: 60
我是线程B: 61
我是线程B: 62
我是线程B: 63
我是线程B: 64
我是线程B: 65
我是线程B: 66
我是线程B: 67
我是线程B: 68
我是线程B: 69
我是线程B: 70
我是线程B: 71
我是线程B: 72
我是线程B: 73
我是线程B: 74
我是线程B: 75
我是线程B: 76
我是线程B: 77
我是线程B: 78
我是线程B: 79
我是线程B: 80
我是线程B: 81
我是线程B: 82
我是线程B: 83
我是线程B: 84
我是线程B: 85
我是线程B: 86
我是线程B: 87
我是线程B: 88
我是线程B: 89
我是线程B: 90
我是线程B: 91
我是线程B: 92
我是线程B: 93
我是线程B: 94
我是线程B: 95
我是线程B: 96
我是线程B: 97
我是线程B: 98
我是线程B: 99
我是线程B: 100
我是线程A: 7
我是线程A: 8
我是线程A: 9
我是线程A: 10
我是线程A: 11
我是线程A: 12
我是线程A: 13
我是线程A: 14
我是线程A: 15
我是线程A: 16
我是线程A: 17
我是线程A: 18
我是线程A: 19
我是线程A: 20
我是线程A: 21
我是线程A: 22
我是线程A: 23
我是线程A: 24
我是线程A: 25
我是线程A: 26
我是线程A: 27
我是线程A: 28
我是线程A: 29
我是线程A: 30
我是线程A: 31
我是线程A: 32
我是线程A: 33
我是线程A: 34
我是线程A: 35
我是线程A: 36
我是线程A: 37
我是线程A: 38
我是线程A: 39
我是线程A: 40
我是线程A: 41
我是线程A: 42
我是线程A: 43
我是线程A: 44
我是线程A: 45
我是线程A: 46
我是线程A: 47
我是线程A: 48
我是线程A: 49
我是线程A: 50
我是线程A: 51
我是线程A: 52
我是线程A: 53
我是线程A: 54
我是线程A: 55
我是线程A: 56
我是线程A: 57
我是线程A: 58
我是线程A: 59
我是线程A: 60
我是线程A: 61
我是线程A: 62
我是线程A: 63
我是线程A: 64
我是线程A: 65
我是线程A: 66
我是线程A: 67
我是线程A: 68
我是线程A: 69
我是线程A: 70
我是线程A: 71
我是线程A: 72
我是线程A: 73
我是线程A: 74
我是线程A: 75
我是线程A: 76
我是线程A: 77
我是线程A: 78
我是线程A: 79
我是线程A: 80
我是线程A: 81
我是线程A: 82
我是线程A: 83
我是线程A: 84
我是线程A: 85
我是线程A: 86
我是线程A: 87
我是线程A: 88
我是线程A: 89
我是线程A: 90
我是线程A: 91
我是线程A: 92
我是线程A: 93
我是线程A: 94
我是线程A: 95
我是线程A: 96
我是线程A: 97
我是线程A: 98
我是线程A: 99
我是线程A: 100
将后启动线程B优先级设为8,打印1~500
我是线程A: 1
我是线程A: 我是线程B: 1
我是线程B: 2
我是线程B: 3
我是线程B: 4
我是线程B: 5
我是线程B: 6
我是线程B: 7
我是线程B: 8
我是线程B: 9
我是线程B: 10
我是线程B: 11
我是线程B: 12
我是线程B: 13
我是线程B: 14
我是线程B: 15
我是线程B: 16
我是线程B: 17
我是线程B: 18
我是线程B: 19
我是线程B: 20
我是线程B: 21
我是线程B: 22
我是线程B: 23
我是线程B: 24
我是线程B: 25
我是线程B: 26
我是线程B: 27
我是线程B: 28
我是线程B: 29
我是线程B: 30
我是线程B: 31
我是线程B: 32
我是线程B: 33
我是线程B: 34
我是线程B: 35
我是线程B: 36
我是线程B: 37
我是线程B: 38
我是线程B: 39
我是线程B: 40
我是线程B: 41
我是线程B: 42
我是线程B: 43
我是线程B: 44
我是线程B: 45
我是线程B: 46
我是线程B: 47
我是线程B: 48
我是线程B: 49
我是线程B: 50
我是线程B: 51
我是线程B: 52
我是线程B: 53
我是线程B: 54
我是线程B: 55
我是线程B: 56
我是线程B: 57
我是线程B: 58
我是线程B: 59
我是线程B: 60
我是线程B: 61
我是线程B: 62
我是线程B: 63
我是线程B: 64
我是线程B: 65
我是线程B: 66
我是线程B: 67
我是线程B: 68
我是线程B: 69
我是线程B: 70
我是线程B: 71
我是线程B: 72
我是线程B: 73
我是线程B: 74
我是线程B: 75
我是线程B: 76
我是线程B: 77
我是线程B: 78
我是线程B: 79
我是线程B: 80
我是线程B: 81
我是线程B: 82
我是线程B: 83
我是线程B: 84
我是线程B: 85
我是线程B: 86
我是线程B: 87
我是线程B: 88
我是线程B: 89
我是线程B: 90
我是线程B: 91
我是线程B: 92
我是线程B: 93
我是线程B: 94
我是线程B: 95
我是线程B: 96
我是线程B: 97
我是线程B: 98
我是线程B: 99
我是线程B: 100
我是线程B: 101
我是线程B: 102
我是线程B: 103
我是线程B: 104
我是线程B: 105
我是线程B: 106
我是线程B: 107
我是线程B: 108
我是线程B: 109
我是线程B: 110
我是线程B: 111
我是线程B: 112
我是线程B: 113
我是线程B: 114
我是线程B: 115
我是线程B: 116
我是线程B: 117
我是线程B: 118
我是线程B: 119
我是线程B: 120
我是线程B: 121
我是线程B: 122
我是线程B: 123
我是线程B: 124
我是线程B: 125
我是线程B: 126
我是线程B: 127
我是线程B: 128
我是线程B: 129
我是线程B: 130
我是线程B: 131
我是线程B: 132
我是线程B: 133
我是线程B: 134
我是线程B: 135
我是线程B: 136
我是线程B: 137
我是线程B: 138
我是线程B: 139
我是线程B: 140
我是线程B: 141
我是线程B: 142
我是线程B: 143
我是线程B: 144
我是线程B: 145
我是线程B: 146
我是线程B: 147
我是线程B: 148
我是线程B: 149
我是线程B: 150
我是线程B: 151
我是线程B: 152
我是线程B: 153
我是线程B: 154
我是线程B: 155
我是线程B: 156
我是线程B: 157
我是线程B: 158
我是线程B: 159
我是线程B: 160
我是线程B: 161
我是线程B: 162
我是线程B: 163
我是线程B: 164
我是线程B: 165
我是线程B: 166
我是线程B: 167
我是线程B: 168
我是线程B: 169
我是线程B: 170
我是线程B: 171
我是线程B: 172
我是线程B: 173
我是线程B: 174
我是线程B: 175
我是线程B: 176
我是线程B: 177
我是线程B: 178
我是线程B: 179
我是线程B: 180
我是线程B: 181
我是线程B: 182
我是线程B: 183
我是线程B: 184
我是线程B: 185
我是线程B: 186
我是线程B: 187
我是线程B: 188
我是线程B: 189
我是线程B: 190
我是线程B: 191
我是线程B: 192
我是线程B: 193
我是线程B: 194
我是线程B: 195
我是线程B: 196
我是线程B: 197
我是线程B: 198
我是线程B: 199
我是线程B: 200
2
我是线程A: 3
我是线程A: 4
我是线程A: 5
我是线程A: 6
我是线程A: 7
我是线程A: 8
我是线程A: 9
我是线程A: 10
我是线程A: 11
我是线程A: 12
我是线程A: 13
我是线程A: 14
我是线程A: 15
我是线程A: 16
我是线程A: 17
我是线程A: 18
我是线程A: 19
我是线程A: 20
我是线程A: 21
我是线程A: 22
我是线程A: 23
我是线程A: 24
我是线程A: 25
我是线程A: 26
我是线程A: 27
我是线程A: 28
我是线程A: 29
我是线程A: 30
我是线程A: 31
我是线程A: 32
我是线程A: 33
我是线程A: 34
我是线程A: 35
我是线程A: 36
我是线程A: 37
我是线程A: 38
我是线程A: 39
我是线程A: 40
我是线程A: 41
我是线程A: 42
我是线程A: 43
我是线程A: 44
我是线程A: 45
我是线程A: 46
我是线程A: 47
我是线程A: 48
我是线程A: 49
我是线程A: 50
我是线程A: 51
我是线程A: 52
我是线程A: 53
我是线程A: 54
我是线程A: 55
我是线程A: 56
我是线程A: 57
我是线程A: 58
我是线程A: 59
我是线程A: 60
我是线程A: 61
我是线程A: 62
我是线程A: 63
我是线程A: 64
我是线程A: 65
我是线程A: 66
我是线程A: 67
我是线程A: 68
我是线程A: 69
我是线程A: 70
我是线程A: 71
我是线程A: 72
我是线程A: 73
我是线程A: 74
我是线程A: 75
我是线程A: 76
我是线程A: 77
我是线程A: 78
我是线程A: 79
我是线程A: 80
我是线程A: 81
我是线程A: 82
我是线程A: 83
我是线程A: 84
我是线程A: 85
我是线程A: 86
我是线程A: 87
我是线程A: 88
我是线程A: 89
我是线程A: 90
我是线程A: 91
我是线程A: 92
我是线程A: 93
我是线程A: 94
我是线程A: 95
我是线程A: 96
我是线程A: 97
我是线程A: 98
我是线程A: 99
我是线程A: 100
我是线程A: 101
我是线程A: 102
我是线程A: 103
我是线程A: 104
我是线程A: 105
我是线程A: 106
我是线程A: 107
我是线程A: 108
我是线程A: 109
我是线程A: 110
我是线程A: 111
我是线程A: 112
我是线程A: 113
我是线程A: 114
我是线程A: 115
我是线程A: 116
我是线程A: 117
我是线程A: 118
我是线程A: 119
我是线程A: 120
我是线程A: 121
我是线程A: 122
我是线程A: 123
我是线程A: 124
我是线程A: 125
我是线程A: 126
我是线程A: 127
我是线程A: 128
我是线程A: 129
我是线程A: 130
我是线程A: 131
我是线程A: 132
我是线程A: 133
我是线程A: 134
我是线程A: 135
我是线程A: 136
我是线程A: 137
我是线程A: 138
我是线程A: 139
我是线程A: 140
我是线程A: 141
我是线程A: 142
我是线程A: 143
我是线程A: 144
我是线程A: 145
我是线程A: 146
我是线程A: 147
我是线程A: 148
我是线程A: 149
我是线程A: 150
我是线程A: 151
我是线程A: 152
我是线程A: 153
我是线程A: 154
我是线程A: 155
我是线程A: 156
我是线程A: 157
我是线程A: 158
我是线程A: 159
我是线程A: 160
我是线程A: 161
我是线程A: 162
我是线程A: 163
我是线程A: 164
我是线程A: 165
我是线程A: 166
我是线程A: 167
我是线程A: 168
我是线程A: 169
我是线程A: 170
我是线程A: 171
我是线程A: 172
我是线程A: 173
我是线程A: 174
我是线程A: 175
我是线程A: 176
我是线程A: 177
我是线程A: 178
我是线程A: 179
我是线程A: 180
我是线程A: 181
我是线程A: 182
我是线程A: 183
我是线程A: 184
我是线程A: 185
我是线程A: 186
我是线程A: 187
我是线程A: 188
我是线程A: 189
我是线程A: 190
我是线程A: 191
我是线程A: 192
我是线程A: 193
我是线程A: 194
我是线程A: 195
我是线程A: 196
我是线程A: 197
我是线程A: 198
我是线程A: 199
我是线程A: 200
追问
能不能解释一下把优先级设置为6和8,有什么区别。
追答
我只能这么解释:java 线程的默认优先级是5,优先级相同,先启动的线程也不一定先执行,不一定现执行完。优先级较高的线程系统会优先执行先,但不代表这些线程一定会先完成。设定优先级只能建议系统更快的处理,而不能强制。 
从这个测试程序看优先级,结果没那么明显,cup执行太快了。
tian_et
2012-05-12 · TA获得超过783个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:319万
展开全部
写两个文件
/************************第一个文件 Thread1.java***********/

public class Thread1 extends Thread {
public void run() {
for(int i = 1; i <= 100; i++) {
System.out.println(i);
}
}
}

/************************第二个文件 Thread2.java***********/
public class Thread2 implements Runnable {
public void run() {
for(int i = 1; i <= 1000; i++) {
System.out.println(i);
}
}
public static void main(String[] args) {
Thread1 t1 = new Thread1();
Thread2 t2 = new Thread2();
Thread thread1 = new Thread(t1);
Thread thread2 = new Thread(t2);
thread1.start();
//thread2.setPriority(8);
thread2.start();
}
}
1、当没设优先级,有时1-100先输出,有时1-1000先输出,这是因为没有优先级的情况下,两个线程谁先启动是随机的,而且切换着运行,现在普通的电脑硬件性能好,输出的1-100和1-1000是连续的,输出的数字如果足够大,可能是交叉输出,这是因为两个线程在相互切换着运行
2、当靠后的优先级设成6和8时,这时线程2的优先级较大,所以总是1-1000先输出,有时1-100还无法输出,这是因为线程1的优先级低,当线程2在输出1-1000时,它总是处于等待的状态,没有被启动,等线程2运行完成后,等待虚拟机呼唤它启动。
追问
你的答案我有两个疑问:一是两个线程没有区分是谁打印的,二是把优先级设置为6和8,有什么区别吗?能不能再解释一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飛羽灬
2012-05-11
知道答主
回答量:83
采纳率:0%
帮助的人:24.4万
展开全部
如果你是初学这个的话,建议你自己完成,这个东东真的灰常简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guanglianghou
2012-05-12
知道答主
回答量:73
采纳率:0%
帮助的人:26.4万
展开全部
这个真不懂 高手你真厉害 有空教教俺
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泽韵一生
2012-05-17
知道答主
回答量:8
采纳率:0%
帮助的人:3.7万
展开全部
不懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式