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

已采纳回答 / 福山润
代码1:两个线程同时走,他俩公用一个FlagSender对象里面的flag,当线程t1走第一遍时,flag等于false,不等待直接输出,然后将falg致成true,线程t1等待,这时候线程t2 while里面的!f.isFlag() 为false,所以往下进行输出又将flag致成false,这时线程t1又开始执行。以此类推。代码2:两个对象都在while里面进行死循环,所以只打印一次。

已采纳回答 / bbug
java多线程可以近似看成同时执行,不过本质上计算机能同时工作的线程数是有限个的(取决于你的CPU)老师演示的时候农民军和隋军交替结果看起来应该是至少有两个线程是同时工作的。而你这个明显是仅分配给了这个程序一个线程。多线程是为了解决某些应用上需要等待其他的结果(比如浏览器访问一个网址需要等待服务器返回HTML文件才能继续执行显示页面的操作)才能继续执行,那么这段时间cpu可以去执行其他线程的程序。但是如果这个线程可以一口气执行下去的话,中途其他线程是没有办法执行的。-----------------以下是...

已采纳回答 / dky
static 的作用,就是共享且类唯一,如果一个类要被声明为static的,只有一种情况,就是静态内部类

已采纳回答 / dky
互斥:通常表现在多个线程竞争同一资源。同步:同步就是协同步调,按预定的先后次序进行运行,如进程、线程同步,

已采纳回答 / bbug
可以中断线程,但是尽量处理成其他不抛出异常的方案。

已采纳回答 / 勤劳工作又不粘人的小妖精
线程只要启动之后不让他等待,就会执行一次代码循环后结束。但其中的过程并不是连续的,代码中指令执行一个while循环后,会释放系统资源使得其他线程有机会竞争系统资源,倘若当前线程休眠(等待),就不会再对资源进行争用,自然也就不会执行下一个while了。隋唐演义舞台stage就是这样,由于舞台休眠,不去争用系统资源,所以舞台的run()方法中指令就停止在sleep那个点,而剩下的隋军和农民军线程是活跃的,自然只能看到他们两个争用资源了。

已采纳回答 / 喜欢柯南的小小学徒
你的print2方法里,wait方法没有在if分支里。

已采纳回答 / Askusity
Actor是Thread的子类,这是定义一个父类类型的引用指向一个子类的对象,如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法,如果子类中定义了父类中没有的方法是没办法执行的,这里呢,你可以理解为:Actor actor=new Actor();

已采纳回答 / 高bobo
<...图片...>课程下面的的资料下载

已采纳回答 / silencecorner
条件不满足时也就是其它线程还没有将数据写回(这里的lockObj是EnergySystem的final成员,用来标记EnergySystem,lockObj.wait()也就相当于EnergySystem实例.wait()),等待写入之后(也就是满足条件),执行逻辑代码,在唤醒其它线程(有可能还没有写入数据的)。可以回头看争用条件那节,有助于理解,我专门截了图。<...图片...>
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、Java 中如何使用线程 2、什么是争用条件 3、线程如何交互

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消