最赞回答 / qq_一只瓜_0
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
2017-02-23
最新回答 / 慕移动9181930
童鞋,你说的前半部分关于fixed定位的内容是对的,但是以下说法你说错了:margin是盒子与外边界的距离,那么两个box之间也距离也就是30px
2017-02-14
已采纳回答 / 乱星海
三个方法里至少有一个是notifyAll。假设三个都是notify(),当方法c运行完后,flag为1,此时如果a和b都已经在Wait Set中,且随机唤醒的是b,那么b随机又进入Wait set,c也进入Wait set,此时三个线程全部进入Wait set,造成了死锁。
2017-02-09
已采纳回答 / 福山润
代码1:两个线程同时走,他俩公用一个FlagSender对象里面的flag,当线程t1走第一遍时,flag等于false,不等待直接输出,然后将falg致成true,线程t1等待,这时候线程t2 while里面的!f.isFlag() 为false,所以往下进行输出又将flag致成false,这时线程t1又开始执行。以此类推。代码2:两个对象都在while里面进行死循环,所以只打印一次。
2017-02-04
最赞回答 / 蔚然成麟er
是中断不是终断;比如讲师在本节课中的一个例子:<...code...>我们知道main也一个主线程,在执行到程序的入口,也就是main()方法的时候,程序就会产生一个线程,然后调用start()的时候会产生...
2017-01-24
已采纳回答 / bbug
java多线程可以近似看成同时执行,不过本质上计算机能同时工作的线程数是有限个的(取决于你的CPU)老师演示的时候农民军和隋军交替结果看起来应该是至少有两个线程是同时工作的。而你这个明显是仅分配给了这个程序一个线程。多线程是为了解决某些应用上需要等待其他的结果(比如浏览器访问一个网址需要等待服务器返回HTML文件才能继续执行显示页面的操作)才能继续执行,那么这段时间cpu可以去执行其他线程的程序。但是如果这个线程可以一口气执行下去的话,中途其他线程是没有办法执行的。-----------------以下是...
2017-01-04
最赞回答 / bbug
舞台县城控制了两个军队的开始(前2行)和结束(后2行)。换句话说,舞台线程不运行,军队的线程就不会执行sleep方法是让当前线程暂停指定的时间即50毫秒,这个50毫秒在军队的启动和结束之间,也就是军队进攻只有50毫秒的时间。如果没有暂停应该是各自只攻击一轮(取决于处理器速度)因为在第一轮还没结束的时候已经执行了最后两行的赋值了。着重说一点,sleep休眠的仅仅是舞台线程,两个军队的线程还在执行,因为sleep是写在舞台线程里面的(这段代码全是舞台线程的)。
2017-01-04