最赞回答 / sxian_wang
你的理解大致上是对的,但不是刚好打印的时候被窗口2减去一张票,过程是这样的:当第一个线程获得CPU的时间片后,它的代码恰好执行到println那一行后,刚准备输出(但还没有获得tickets的值),这时候该线程的时间片被剥夺,等待下一次再获得时间片。等到别的线程执行完后,该线程再次获得时间片,它去访问tickets变量,应该tickets变量是被别的线程自减过得,所以获得不是4,而是一个比4小的值。由于这种运算在现在的CPU上很快,就会出现前三个都是2的情况。如果你给println语句加上一个synchr...
2015-12-19
最新回答 / good_2016
If you see the additional message "Unable to attach to 32-bit process running under WOW64",
your application is running with 32bit Java while using 64bit Eclipse on Windows.
Either using 64bit Java for your application or using 32bit Eclipse solv...
2015-12-02
已采纳回答 / 天启之魂
...........建议你再好好学习一下...这里主线程是指的main函数.......sc只是个对象....只是main线程中的一个代码而已...这里能看到的就两个线程 1个main线程 是主线程 一个是thread 线程. 设置成了守护线程...
2015-12-02
已采纳回答 / 天启之魂
稍微说下 免得你误解 不是每个方法都有一个线程 而是 main函数是程序的入口,你运行java程序的时候就默认开启的是main线程 然后你有额外开启了一个thread0的线程 所以有两个线程罗!
2015-11-22
最赞回答 / 哀幻暝
在这里一共有两个线程①.守护线程 ②主线程(main) 老师说的:若没有线程需要守护线程“守护”,那么守护线程就会退出程序运行之后两条线程都在执行:②线程再启动了①线程然后 继续执行到sc.next()语句 等待键盘输入①线程在启动之后就不停的写东西到文件中。如果在这之后的过程中,程序员在键盘中输入的任意字符,毁导致②继续执行,然后②就执行完啦,你看main方法中就那几行代码,全都执行完啦! 然后主线程就退出啦! 然后①线程就没有线程可以守护啦,自己也就退出啦!
2015-11-11