为了账号安全,请及时绑定邮箱和手机立即绑定

最新回答 / 冰断秋
你看是不是把JOIN方法放到了修改keepRunning值得上面

最新回答 / qq_V_186
。。。return z之后的代码是不会被执行的,在return后面加个}然后去掉最后那个}像这样:<...code...>

最新回答 / yyz要学java
再调用一次Thread.interrupted();方法 会清除掉之前线程的状态具体的建议你看一下api该方法可以清除线程的中断状态 。 换句话说,如果这个方法被连续调用两次,那么第二个调用将返回false(除非当前线程再次中断,在第一个调用已经清除其中断状态之后,在第二个调用之前已经检查过)。忽略线程中断,因为线程在中断时不存在将被该方法返回false所反映。结果true如果当前线程已被中断; false否则。以上是java api中的表述

最赞回答 / qq_莫月_0
由于java是单继承的语言,所以在已经继承了其他类又想同时实现线程操作的时候就可以实现runable接口。如下代码所示,实现了runable接口的类(runner1是这个类的实例)在开启新线程的时候还是需要thread来辅助的Thread thread1 = new Thread(runner1); thread1.start();

最赞回答 / 般若菠萝蜜yy
对的,然后等待其他线程调用同一条件变量的notify()或者notifyAll()方法

最新回答 / 陈晨辰_
final修饰的数组只是说你的数组不能再指向其他数组对象, 但它指向的数组的内容是可以变的!而final修饰的锁对象为了保证多线程进行过程中的安全

最赞回答 / 慕斯卡3197864
run()方法只是一个普通方法,调用run()的话就相当于一个普通方法调用,并没有实现多线程。而start()方法才是真正启动线程的方法。调用start()后,此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,run()方法运行结束,此线程随即终止。

最赞回答 / TendeRess
//内部类的话要用主类的实例去new一个内部类的实例对象,比如Actress actress = new Actor().new Actress(); Thread actressThread = new Thread(actress,"Ms.Runnable"); actressThread.start();//这样就行了~<...code...>

最赞回答 / no4990
这篇文章说得很清楚了。当前的线程阻塞,等待调用join()的线程执行。当前的线程可以是 “调用了join()的线程之外的任意线程”。java中的Thread类的joinjoin是Thread的实例方法,官方解释为:等待该线程终止。其作用就是将调用join的线程优先执行,当前正在执行的线程阻塞,直到调用join方法的线程执行完毕或者被打断,主要用于线程之间的交互。还有两个重载的方法:1、join(long millis),等待该线程终止的时间最长为 millis 毫秒。为 0 意味着要一直等下去。2、joi...

最新回答 / TendeRess
嘿嘿,多运行几次你就会发现,结果不会总是一样的,多核计算机的时间片分配问题
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、Java 中如何使用线程 2、什么是争用条件 3、线程如何交互

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消