`
BabyDuncan
  • 浏览: 573581 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

最常见的面试机题,涉及四个线程,两个对j加一,两个对j减一。

阅读更多
这个题太常见了,但是要自己独立的默写出来也不是很容易的哦!
代码:
package renrenPratice;

public class testSomeThread {

	/**
	 * @param args
	 */

	int j = 10;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		testSomeThread tt = new testSomeThread();
		addJ myaddj = tt.new addJ();
		minusJ myminusj = tt.new minusJ();
		for (int m = 0; m < 2; m++) {
			Thread t = new Thread(myaddj);
			t.start();
			t = new Thread(myminusj);
			t.start();
		}
	}

	private synchronized void addj() {
		// TODO Auto-generated method stub
		for (int k = 0; k < 10; k++) {
			++j;
			System.out.println("j++  --> now j is " + j);
		}

	}

	private synchronized void minusj() {
		// TODO Auto-generated method stub
		for (int l = 0; l < 10; l++) {
			--j;
			System.out.println("j--  -->  now j is " + j);
		}
	}

	class addJ implements Runnable {

		@Override
		public void run() {
			// TODO Auto-generated method stub
			addj();
		}
	}

	class minusJ implements Runnable {

		@Override
		public void run() {
			// TODO Auto-generated method stub
			minusj();
		}
	}

}



运行结果:
j++  --> now j is 11
j++  --> now j is 12
j++  --> now j is 13
j++  --> now j is 14
j++  --> now j is 15
j++  --> now j is 16
j++  --> now j is 17
j++  --> now j is 18
j++  --> now j is 19
j++  --> now j is 20
j--  -->  now j is 19
j--  -->  now j is 18
j--  -->  now j is 17
j--  -->  now j is 16
j--  -->  now j is 15
j--  -->  now j is 14
j--  -->  now j is 13
j--  -->  now j is 12
j--  -->  now j is 11
j--  -->  now j is 10
j++  --> now j is 11
j++  --> now j is 12
j++  --> now j is 13
j++  --> now j is 14
j++  --> now j is 15
j++  --> now j is 16
j++  --> now j is 17
j++  --> now j is 18
j++  --> now j is 19
j++  --> now j is 20
j--  -->  now j is 19
j--  -->  now j is 18
j--  -->  now j is 17
j--  -->  now j is 16
j--  -->  now j is 15
j--  -->  now j is 14
j--  -->  now j is 13
j--  -->  now j is 12
j--  -->  now j is 11
j--  -->  now j is 10


看看起来很合理。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics