2013-10-28 101 views
0

如果线程正在执行下面的语句(假设x的值为1)并且在'Here'处休眠并且某个其他线程更改了x的值(假设为10),那么输出是什么?在线程中执行java语句

System.out.println(/Here/++x); 
+0

您可能想查看[Synchronization and System.out.println](http://stackoverflow.com/questions/9459657/synchronization-and-system-out-println)帖子的答案。 –

+0

这取决于x在每个线程中的声明和实际引用 – MRalwasser

回答

0

如果运行System.out停止它做任何处理之前就++x,然后的x值被另一个线程改变10线程,打印的声明将是什么Here计算结果为,其次是11

0

哪一个先到先得。但是你应该知道,如果命令正在被执行,它不可能改变。即使系统是多核,它也会先完成命令然后跳到下一个。除非它称为一个大功能,这是一个不同的主题。

+0

“* big function *”的定义是什么? –