已采纳回答 / 1533687848
就等于是你在等待办业务,在办业务的这个办公室只能有一个人进去,lockObj对象就等于这个办公室,外面等待的人就是这个办公室所拥有的wait set,当一个人办完业务时,办公室会通知所有等待的人说可以进去了,那么这外面等待的所有的人就都同时获得了平等的竞争进入办公室的权力。
2016-06-01
已采纳回答 / 萌萌哒猫头鹰
在舞台这个线程里面将两个军队线程对象的KeepRunning属性设置为false,从而结束了两个军队线程。<...code...>在军队线程里面,keepRunning需用volatile修饰,表示它可以被不同线程访问和修改。即:<...code...>
2016-05-05
最新回答 / qq_云在风中_0
这么说吧,假如你有一个类是一个子类,他继承了某个父类。但是,这个子类需要具有线程的特性,这时候怎么办呢,因为每个java类只能继承一个类,所以这个子类不能继承Thread,这时候就只能实现runable接口了。需要注意的是1.在JDK8中貌似支持了java的多继承,这个我没查证哈,嘿嘿。2.在设计中一般我们均采用实现runable接口的方式,很少直接继承Thread的类。
2016-05-03
已采纳回答 / Wayaye
线程3在没有争夺到锁的情况下肯定不会进入Wait Set等待了。这和你刚开始说的当线程1争夺到锁,而2、3没有争夺到时情况应该是一样的,CPU应该是还没有机会执行这条线程。一家之言。
2016-05-02
已采纳回答 / meersun
在A线程中调用了B线程的join方法,意思是直到线程A执行完毕后才会执行线程B,所以这里的join只对舞台线程起作用。对起义军和隋军线程,程咬金的join方法根本不起作用。我试了下,把keepRunning设为false的语句注释掉,发现即使加上chengyaojin.join(),这两个线程也不会停止,会一直运行下去。
2016-04-26
最新回答 / 亚细亚加娃
EnergyTransferTask task = new EnergyTransferTask(eng, i, INITIAL_ENERGY); //是指为能量系统中的每个盒子(即每个元素)创建一个能量转移任务,这个任务的最大转移量是INITIAL_ENERGY(即1000)。当然初始化时,每个盒子的初始能量是INITIAL_ENERGY(即1000).能量系统中的每个元素=能量系统中的每个盒子我是这样理解的,不造对不对哦~
2016-04-17