本文共 845 字,大约阅读时间需要 2 分钟。
题目
有一辆班车除司机外只能承载80个人,假设前中后三个车门都能上车,如果坐满则不能再上车。
请用线程模拟上车过程并且在控制台打印出是从哪个车门上车以及剩下的座位数。 比如:(前门上车---还剩N个座...)
代码实现
class Car implements Runnable{ private int number = 80; private boolean flag = true; public void run() { while(number>0) { synchronized ("abc") { /*if(!flag) { break; }*/ if(number<=0) { break; } try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } number--; System.out.println(Thread.currentThread().getName()+" 还剩下座位号"+number); if(number==0) { flag = false; } } } } }public class demo { public static void main(String[] args) { Car car = new Car(); Thread thread1 = new Thread(car,"前门线程"); Thread thread2 = new Thread(car,"中门线程"); Thread thread3 = new Thread(car,"后门线程"); thread1.start(); thread2.start(); thread3.start(); }}
转载地址:http://npazi.baihongyu.com/