
我是一个编程初学者,请用Java代码实现,请大家帮帮忙:
设计一个生产电脑和搬运电脑类,要求生产出一台电脑就要搬走一台电脑,如果没有新的电脑生产出来,则搬运工要等待新电脑产出;如果生产出的没有搬走,则要等待电脑搬走之后再生产,并...
设计一个生产电脑和搬运电脑类,要求生产出一台电脑就要搬走一台电脑,如果没有新的电脑生产出来,则搬运工
要等待新电脑产出;如果生产出的没有搬走,则要等待电脑搬走之后再生产,并统计出生产出的电脑数量 展开
要等待新电脑产出;如果生产出的没有搬走,则要等待电脑搬走之后再生产,并统计出生产出的电脑数量 展开
2个回答
展开全部
使用线程,但是必须给方法加锁.就是synchronized 关键字。实际上,等待生产才能搬走就是不能同时调用,故要加锁
public class diannao extends Thread {
int i=0;
//生产方法
public synchronized void build(){
i++;
System.out.println("生产第"+i+"台电脑");
}
public synchronized void move(){
System.out.println("搬运第"+i+"台电脑");
}
public void run(){
while(true){
try{
this.sleep(1000);
build();
move();
}catch(Exception ex){
ex.printStackTrace();
}
System.out.println("电脑总共有"+i+"台");
}
}
public static void main(String[] args) {
diannao d=new diannao();
d.start();
}
}
public class diannao extends Thread {
int i=0;
//生产方法
public synchronized void build(){
i++;
System.out.println("生产第"+i+"台电脑");
}
public synchronized void move(){
System.out.println("搬运第"+i+"台电脑");
}
public void run(){
while(true){
try{
this.sleep(1000);
build();
move();
}catch(Exception ex){
ex.printStackTrace();
}
System.out.println("电脑总共有"+i+"台");
}
}
public static void main(String[] args) {
diannao d=new diannao();
d.start();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询