下面的程序利用线程输出从a到z的26个字母,每隔1s输出一个字母,程序不完整,请阅读程序代码,根据注释要求填写划线(1)~(5)的代码public class Test(1){//多线程类Testchar charArray[]=new char[26];public Test() {for(int i=0;i
查看答案
下面是一个多线程程序。根据提示,填写划线(1)~(5)的代码public class TestMultiThreads{public static void main(String[] args) {(1) ;// 实例化线程(2) ;//将线程t1改名为“线程1”(3) ;//启动线程t1System.out.println("main方法结束。");}}class Test (4){//使用接口的方式创建线程类private int i;public void run() {while(true) {System.out.println(i++);try {(5) ;//随机休眠0-5s}catch(InterruptedException e) {e.printStackTrace();}}}}
下面的程序时一个模拟龟兔赛跑的多线程程序,请将划线上(1)~(4)的语句补充完整class Animal (1){//继承线程类int speed;//速度public Animal((2)) {//线程名用动物们代表,即其中一个参数是String类型的super(str);this.speed=speed;}public void run() {int distance=0;int sleepTime;while(distance<=1000) {System.out.println(getName()+"is at "+distance);try {distance+=speed;sleepTime=(int)(speed+Math.random()*speed);sleep(sleepTime);}catch(InterruptedException e) {e.printStackTrace();}}}}public class Race {public static void main(String[] args) {Thread a1,a2;(3);// 创建兔子的对象,名为“rabbit”,速度为100,对象引用名为a1(4);// 创建乌龟的对象,名为“turtle”,速度为20,对象引用名为a2a1.start();a2.start();}}
下面的代码是模拟生产者——消费者问题中的共享对象对应的类Share的代码。当生产者线程把一个数据放入Share对象的contents中后,将available赋值为true,表示生产者生产好了产品,通知消费者线程可以取走,如果消费者还没有取走产品,则生产者线程必须等待:如果消费者线程可以取走了产品,则将available赋值为false,然后通知生产者继续生产,否则消费者线程必须等待。请补充完成划线(1)~(5)部分的代码,编号相同的空代码是一样的。public class Share {private int contents;private boolean available=false;public(1)int get() {//同步get方法while((2)){//没有可提供的数据try {(3);//线程等待}catch(InterruptedException e) {e.printStackTrace();}}available=false;(4);//唤醒所有的线程return contents;}public (1) int put(int value) {//同步put方法while((5)){//有可提供的数据try {(3);//线程等待}catch(InterruptedException e) {e.printStackTrace();}}contents=value;available=true;(4);//唤醒所有的线程return contents;}}
return语句的作用是使程序流程从( )返回到( )的调用处。