1至100,一个线程打印奇数,一个线程打印偶数

小弟夏天面试某家游戏公司,面试官出了这么一个问题

从1到100,一个线程打印奇数,一个线程打印偶数,按顺序打印出来。

自己如今写了代码,分享大家:

public class A {
	private int i;

	public A() {
		// TODO Auto-generated constructor stub
		i = 1;
	}

	synchronized public void printji() {
		if (i % 2 == 1) {
			System.out.println("Thread id:"+Thread.currentThread().getId()+"--->"+i);
			i++;
		}
	}

	synchronized public void printou() {
		if (i % 2 == 0) {
			System.out.println("Thread id:"+Thread.currentThread().getId()+"--->"+i);
			i++;
		}
	}

	public int geti() {
		return i;
	}
}

public class Thread1 extends Thread {
	private A a;

	public Thread1(A a) {
		// TODO Auto-generated constructor stub
		this.a = a;
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		super.run();
		while (a.geti() < 100)
			a.printji();
	}
}


public class Thread2 extends Thread {
	private A a;

	public Thread2(A a) {
		// TODO Auto-generated constructor stub
		this.a = a;
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		super.run();
		while (a.geti() < 100)
			a.printou();
	}
}



public class Main {
	public static void main(String[] args) {
		A a=new A();
		Thread1 thread1=new Thread1(a);
		Thread2 thread2=new Thread2(a);
		thread1.start();
		thread2.start();
	}

}



//如有不对,还望大家指出。


打印结果:

Thread id:9--->1
Thread id:10--->2
Thread id:9--->3
Thread id:10--->4
Thread id:9--->5
Thread id:10--->6
Thread id:9--->7
Thread id:10--->8
Thread id:9--->9
Thread id:10--->10
Thread id:9--->11
Thread id:10--->12
Thread id:9--->13
Thread id:10--->14
Thread id:9--->15
Thread id:10--->16
Thread id:9--->17
Thread id:10--->18
Thread id:9--->19
Thread id:10--->20
Thread id:9--->21
Thread id:10--->22
Thread id:9--->23
Thread id:10--->24
Thread id:9--->25
Thread id:10--->26
Thread id:9--->27
Thread id:10--->28
Thread id:9--->29
Thread id:10--->30
Thread id:9--->31
Thread id:10--->32
Thread id:9--->33
Thread id:10--->34
Thread id:9--->35
Thread id:10--->36
Thread id:9--->37
Thread id:10--->38
Thread id:9--->39
Thread id:10--->40
Thread id:9--->41
Thread id:10--->42
Thread id:9--->43
Thread id:10--->44
Thread id:9--->45
Thread id:10--->46
Thread id:9--->47
Thread id:10--->48
Thread id:9--->49
Thread id:10--->50
Thread id:9--->51
Thread id:10--->52
Thread id:9--->53
Thread id:10--->54
Thread id:9--->55
Thread id:10--->56
Thread id:9--->57
Thread id:10--->58
Thread id:9--->59
Thread id:10--->60
Thread id:9--->61
Thread id:10--->62
Thread id:9--->63
Thread id:10--->64
Thread id:9--->65
Thread id:10--->66
Thread id:9--->67
Thread id:10--->68
Thread id:9--->69
Thread id:10--->70
Thread id:9--->71
Thread id:10--->72
Thread id:9--->73
Thread id:10--->74
Thread id:9--->75
Thread id:10--->76
Thread id:9--->77
Thread id:10--->78
Thread id:9--->79
Thread id:10--->80
Thread id:9--->81
Thread id:10--->82
Thread id:9--->83
Thread id:10--->84
Thread id:9--->85
Thread id:10--->86
Thread id:9--->87
Thread id:10--->88
Thread id:9--->89
Thread id:10--->90
Thread id:9--->91
Thread id:10--->92
Thread id:9--->93
Thread id:10--->94
Thread id:9--->95
Thread id:10--->96
Thread id:9--->97
Thread id:10--->98
Thread id:9--->99
Thread id:10--->100













  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值