歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> LINUX信號

LINUX信號

日期:2017/3/3 13:46:28   编辑:Linux技術

public class Tst11 implements Runnable {

	private int x;
	private int y;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Tst11 t = new Tst11();
		new Thread(t).start();
		new Thread(t).start();
	}

	public void run() {
		for (;;) {
			x++;
			y++;
			System.out.println("x=" + x + ",y=" + y);
		}

	}

}
以上代碼的運行結果是?

A 編譯不通過

B 輸出行類似 x=1,y=1 , 總是重復一次。

C 輸出行類似 x=1,y=1 , 遞增,每行不重復。

D 輸出行類似 x=38773,y=38984 , x和y的值不一定相等

答案:D

分析:本地考察對 多線程的概念理解。 Java 中的多線程,指的是對 Java 的同一對象的同一代碼段,有兩個線程在競逐執行。

代碼11行、12行,創建了兩個線程。

由於是兩個線程 搶占式、發式地執行,故每個線程在執行 run 中的代碼時,很可能中途中斷執行,讓出CPU給另一個線程。所以導致 x 和 y 的值不能同步增加。

Copyright © Linux教程網 All Rights Reserved