在主线程中创建了一个线程,该线程休眠50ms然后给变量i赋值。主线程要等该子线程结束后获得并输出i的值,使程序的输出结果如下

MOOC Java第七章单元作业第二题


前言

提示:本题知识点:
Java多线程中的start()、sleep()、join()方法使用案例。


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目

程序填空题:
‍本题的要求是:
在主线程中创建了一个线程,该线程休眠50ms然后给变量i赋值。主线程要等该子线程结束后获得并输出i的值,使程序的输出结果如下:
javaj=10 ,a.i=10

二、使用步骤

1.填空题代码

代码如下(示例):

public class Java_2 {
    public static void main (String[] args) {
        try {
            Sleep a = new Sleep ();
            Thread t = new Thread (a);
            t._____________();
            t.join();
            int j= a.i;
            System.out.println("j="+j+",a.i="+a.i);
        } catch (Exception e) {}
    }
}
class Sleep implements _________________{
    int i;
    public void run () {
        try {
            Thread._______________(50);
            i= 10;
        } catch(InterruptedException e){

        }
    }
}

2.(参考)答案

代码如下(示例):

public class Java_2 {
    public static void main (String[] args) {
        try {
            Sleep a = new Sleep ();
            Thread t = new Thread (a);
            t.start();  //(1)t.start();启动子线程
            t.join();	//让主线程等待子线程执行完毕再往下走赋值,否者可能在子线程还没跑完就提前赋值。
            int j= a.i;	//主线程赋值
            System.out.println("j="+j+",a.i="+a.i);
        } catch (Exception e) {	
        	throw new RuntimeException(e);
        }
    }
}
class Sleep implements Runnable{ //(2)此处给出了implements,则使用实现Runnable接口来实现多线程
    int i;
    public void run () {
        try {	//异常处理
            Thread.sleep(50);   //(3)Thread.sleep
            i= 10;
        } catch(InterruptedException e){
        	throw new RuntimeException(e);
        }
    }
}

3.答案直观展示

(1)t.start();
(2)Runnable
(3)sleep


总结

知识点:sleep、start和join方法。
(1)sleep():设置线程睡眠:sleep(毫秒); //单位毫秒ms,需要处理异常
(2)start(): 启动子线程
(3)join(): 让主线程等待着,等子线程执行完毕再往下走,不然在多线程情况下,会出现主线程跑完了,子线程还在跑,而子线程处理的值将毫无意义


若有不正确的地方欢迎指正,一起交流进步,会回评论噢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FanSky_Qs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值